{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "1f1077df-3040-4489-9ae2-b040407fa6e8",
   "metadata": {},
   "source": [
    "# 随机森林、"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f051334-2c5c-4693-a36f-a613b479cae3",
   "metadata": {},
   "source": [
    "### 量化金融 - 股票涨跌预测模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2eb24600-67af-4be1-b463-e8a136eb0659",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting tushare\n",
      "  Downloading tushare-1.4.24-py3-none-any.whl.metadata (3.4 kB)\n",
      "Requirement already satisfied: pandas in d:\\program files\\anaconda3\\lib\\site-packages (from tushare) (2.2.2)\n",
      "Requirement already satisfied: requests in d:\\program files\\anaconda3\\lib\\site-packages (from tushare) (2.32.2)\n",
      "Requirement already satisfied: lxml in d:\\program files\\anaconda3\\lib\\site-packages (from tushare) (5.2.1)\n",
      "Collecting simplejson (from tushare)\n",
      "  Downloading simplejson-3.20.2-cp312-cp312-win_amd64.whl.metadata (3.4 kB)\n",
      "Collecting bs4 (from tushare)\n",
      "  Downloading bs4-0.0.2-py2.py3-none-any.whl.metadata (411 bytes)\n",
      "Requirement already satisfied: websocket-client>=0.57.0 in d:\\program files\\anaconda3\\lib\\site-packages (from tushare) (1.8.0)\n",
      "Requirement already satisfied: tqdm in d:\\program files\\anaconda3\\lib\\site-packages (from tushare) (4.66.4)\n",
      "Requirement already satisfied: beautifulsoup4 in d:\\program files\\anaconda3\\lib\\site-packages (from bs4->tushare) (4.12.3)\n",
      "Requirement already satisfied: numpy>=1.26.0 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas->tushare) (1.26.4)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas->tushare) (2.9.0.post0)\n",
      "Requirement already satisfied: pytz>=2020.1 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas->tushare) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.7 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas->tushare) (2023.3)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in d:\\program files\\anaconda3\\lib\\site-packages (from requests->tushare) (2.0.4)\n",
      "Requirement already satisfied: idna<4,>=2.5 in d:\\program files\\anaconda3\\lib\\site-packages (from requests->tushare) (3.7)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in d:\\program files\\anaconda3\\lib\\site-packages (from requests->tushare) (2.2.2)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in d:\\program files\\anaconda3\\lib\\site-packages (from requests->tushare) (2024.6.2)\n",
      "Requirement already satisfied: colorama in d:\\program files\\anaconda3\\lib\\site-packages (from tqdm->tushare) (0.4.6)\n",
      "Requirement already satisfied: six>=1.5 in d:\\program files\\anaconda3\\lib\\site-packages (from python-dateutil>=2.8.2->pandas->tushare) (1.16.0)\n",
      "Requirement already satisfied: soupsieve>1.2 in d:\\program files\\anaconda3\\lib\\site-packages (from beautifulsoup4->bs4->tushare) (2.5)\n",
      "Downloading tushare-1.4.24-py3-none-any.whl (143 kB)\n",
      "   ---------------------------------------- 0.0/143.6 kB ? eta -:--:--\n",
      "   ---------------------------------------- 0.0/143.6 kB ? eta -:--:--\n",
      "   -- ------------------------------------- 10.2/143.6 kB ? eta -:--:--\n",
      "   -- ------------------------------------- 10.2/143.6 kB ? eta -:--:--\n",
      "   ----------- --------------------------- 41.0/143.6 kB 281.8 kB/s eta 0:00:01\n",
      "   ------------------- ------------------- 71.7/143.6 kB 393.8 kB/s eta 0:00:01\n",
      "   -------------------------------- ----- 122.9/143.6 kB 516.7 kB/s eta 0:00:01\n",
      "   -------------------------------------- 143.6/143.6 kB 533.4 kB/s eta 0:00:00\n",
      "Downloading bs4-0.0.2-py2.py3-none-any.whl (1.2 kB)\n",
      "Downloading simplejson-3.20.2-cp312-cp312-win_amd64.whl (75 kB)\n",
      "   ---------------------------------------- 0.0/76.0 kB ? eta -:--:--\n",
      "   ---------------------------------------- 76.0/76.0 kB 4.1 MB/s eta 0:00:00\n",
      "Installing collected packages: simplejson, bs4, tushare\n",
      "Successfully installed bs4-0.0.2 simplejson-3.20.2 tushare-1.4.24\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "pip install tushare"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "7bebf827-ef4c-4eb3-b1d6-f63000e5c137",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting akshare\n",
      "  Downloading akshare-1.17.63-py3-none-any.whl.metadata (12 kB)\n",
      "Collecting aiohttp>=3.11.13 (from akshare)\n",
      "  Downloading aiohttp-3.13.0-cp312-cp312-win_amd64.whl.metadata (8.4 kB)\n",
      "Requirement already satisfied: beautifulsoup4>=4.9.1 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (4.12.3)\n",
      "Requirement already satisfied: lxml>=4.2.1 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (5.2.1)\n",
      "Requirement already satisfied: pandas>=0.25 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (2.2.2)\n",
      "Requirement already satisfied: requests>=2.22.0 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (2.32.2)\n",
      "Collecting html5lib>=1.0.1 (from akshare)\n",
      "  Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB)\n",
      "Requirement already satisfied: xlrd>=1.2.0 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (2.0.1)\n",
      "Requirement already satisfied: urllib3>=1.25.8 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (2.2.2)\n",
      "Requirement already satisfied: tqdm>=4.43.0 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (4.66.4)\n",
      "Requirement already satisfied: openpyxl>=3.0.3 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (3.1.2)\n",
      "Collecting jsonpath>=0.82 (from akshare)\n",
      "  Downloading jsonpath-0.82.2.tar.gz (10 kB)\n",
      "  Preparing metadata (setup.py): started\n",
      "  Preparing metadata (setup.py): finished with status 'done'\n",
      "Requirement already satisfied: tabulate>=0.8.6 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (0.9.0)\n",
      "Requirement already satisfied: decorator>=4.4.2 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (5.1.1)\n",
      "Requirement already satisfied: nest_asyncio>=1.6.0 in d:\\program files\\anaconda3\\lib\\site-packages (from akshare) (1.6.0)\n",
      "Collecting mini-racer>=0.12.4 (from akshare)\n",
      "  Downloading mini_racer-0.12.4-py3-none-win_amd64.whl.metadata (18 kB)\n",
      "Collecting aiohappyeyeballs>=2.5.0 (from aiohttp>=3.11.13->akshare)\n",
      "  Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl.metadata (5.9 kB)\n",
      "Collecting aiosignal>=1.4.0 (from aiohttp>=3.11.13->akshare)\n",
      "  Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB)\n",
      "Requirement already satisfied: attrs>=17.3.0 in d:\\program files\\anaconda3\\lib\\site-packages (from aiohttp>=3.11.13->akshare) (23.1.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in d:\\program files\\anaconda3\\lib\\site-packages (from aiohttp>=3.11.13->akshare) (1.4.0)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in d:\\program files\\anaconda3\\lib\\site-packages (from aiohttp>=3.11.13->akshare) (6.0.4)\n",
      "Collecting propcache>=0.2.0 (from aiohttp>=3.11.13->akshare)\n",
      "  Downloading propcache-0.4.1-cp312-cp312-win_amd64.whl.metadata (14 kB)\n",
      "Collecting yarl<2.0,>=1.17.0 (from aiohttp>=3.11.13->akshare)\n",
      "  Downloading yarl-1.22.0-cp312-cp312-win_amd64.whl.metadata (77 kB)\n",
      "     ---------------------------------------- 0.0/77.6 kB ? eta -:--:--\n",
      "     --------------- ------------------------ 30.7/77.6 kB 1.4 MB/s eta 0:00:01\n",
      "     -------------------- ----------------- 41.0/77.6 kB 393.8 kB/s eta 0:00:01\n",
      "     -------------------------------------- 77.6/77.6 kB 538.8 kB/s eta 0:00:00\n",
      "Requirement already satisfied: soupsieve>1.2 in d:\\program files\\anaconda3\\lib\\site-packages (from beautifulsoup4>=4.9.1->akshare) (2.5)\n",
      "Requirement already satisfied: six>=1.9 in d:\\program files\\anaconda3\\lib\\site-packages (from html5lib>=1.0.1->akshare) (1.16.0)\n",
      "Requirement already satisfied: webencodings in d:\\program files\\anaconda3\\lib\\site-packages (from html5lib>=1.0.1->akshare) (0.5.1)\n",
      "Requirement already satisfied: et-xmlfile in d:\\program files\\anaconda3\\lib\\site-packages (from openpyxl>=3.0.3->akshare) (1.1.0)\n",
      "Requirement already satisfied: numpy>=1.26.0 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas>=0.25->akshare) (1.26.4)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas>=0.25->akshare) (2.9.0.post0)\n",
      "Requirement already satisfied: pytz>=2020.1 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas>=0.25->akshare) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.7 in d:\\program files\\anaconda3\\lib\\site-packages (from pandas>=0.25->akshare) (2023.3)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in d:\\program files\\anaconda3\\lib\\site-packages (from requests>=2.22.0->akshare) (2.0.4)\n",
      "Requirement already satisfied: idna<4,>=2.5 in d:\\program files\\anaconda3\\lib\\site-packages (from requests>=2.22.0->akshare) (3.7)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in d:\\program files\\anaconda3\\lib\\site-packages (from requests>=2.22.0->akshare) (2024.6.2)\n",
      "Requirement already satisfied: colorama in d:\\program files\\anaconda3\\lib\\site-packages (from tqdm>=4.43.0->akshare) (0.4.6)\n",
      "Requirement already satisfied: typing-extensions>=4.2 in d:\\program files\\anaconda3\\lib\\site-packages (from aiosignal>=1.4.0->aiohttp>=3.11.13->akshare) (4.11.0)\n",
      "Downloading akshare-1.17.63-py3-none-any.whl (1.1 MB)\n",
      "   ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n",
      "   - -------------------------------------- 0.0/1.1 MB 960.0 kB/s eta 0:00:02\n",
      "   -- ------------------------------------- 0.1/1.1 MB 787.7 kB/s eta 0:00:02\n",
      "   ---- ----------------------------------- 0.1/1.1 MB 819.2 kB/s eta 0:00:02\n",
      "   ------ --------------------------------- 0.2/1.1 MB 871.5 kB/s eta 0:00:02\n",
      "   -------- ------------------------------- 0.2/1.1 MB 871.5 kB/s eta 0:00:01\n",
      "   --------- ------------------------------ 0.3/1.1 MB 871.5 kB/s eta 0:00:01\n",
      "   ---------- ----------------------------- 0.3/1.1 MB 896.4 kB/s eta 0:00:01\n",
      "   ------------- -------------------------- 0.4/1.1 MB 916.6 kB/s eta 0:00:01\n",
      "   -------------- ------------------------- 0.4/1.1 MB 930.9 kB/s eta 0:00:01\n",
      "   -------------- ------------------------- 0.4/1.1 MB 930.9 kB/s eta 0:00:01\n",
      "   ---------------- ----------------------- 0.5/1.1 MB 853.3 kB/s eta 0:00:01\n",
      "   ------------------ --------------------- 0.5/1.1 MB 814.9 kB/s eta 0:00:01\n",
      "   ------------------ --------------------- 0.5/1.1 MB 805.8 kB/s eta 0:00:01\n",
      "   ------------------- -------------------- 0.5/1.1 MB 777.1 kB/s eta 0:00:01\n",
      "   -------------------- ------------------- 0.6/1.1 MB 772.0 kB/s eta 0:00:01\n",
      "   --------------------- ------------------ 0.6/1.1 MB 748.6 kB/s eta 0:00:01\n",
      "   ---------------------- ----------------- 0.6/1.1 MB 745.2 kB/s eta 0:00:01\n",
      "   ----------------------- ---------------- 0.6/1.1 MB 726.3 kB/s eta 0:00:01\n",
      "   ------------------------ --------------- 0.6/1.1 MB 700.0 kB/s eta 0:00:01\n",
      "   ------------------------ --------------- 0.7/1.1 MB 710.8 kB/s eta 0:00:01\n",
      "   -------------------------- ------------- 0.7/1.1 MB 696.5 kB/s eta 0:00:01\n",
      "   --------------------------- ------------ 0.7/1.1 MB 684.6 kB/s eta 0:00:01\n",
      "   ---------------------------- ----------- 0.7/1.1 MB 683.9 kB/s eta 0:00:01\n",
      "   ----------------------------- ---------- 0.8/1.1 MB 673.1 kB/s eta 0:00:01\n",
      "   ----------------------------- ---------- 0.8/1.1 MB 673.1 kB/s eta 0:00:01\n",
      "   ------------------------------- -------- 0.8/1.1 MB 663.3 kB/s eta 0:00:01\n",
      "   -------------------------------- ------- 0.9/1.1 MB 655.3 kB/s eta 0:00:01\n",
      "   -------------------------------- ------- 0.9/1.1 MB 655.3 kB/s eta 0:00:01\n",
      "   --------------------------------- ------ 0.9/1.1 MB 640.5 kB/s eta 0:00:01\n",
      "   ---------------------------------- ----- 0.9/1.1 MB 633.7 kB/s eta 0:00:01\n",
      "   ---------------------------------- ----- 0.9/1.1 MB 634.3 kB/s eta 0:00:01\n",
      "   ----------------------------------- ---- 0.9/1.1 MB 621.2 kB/s eta 0:00:01\n",
      "   ------------------------------------ --- 1.0/1.1 MB 621.6 kB/s eta 0:00:01\n",
      "   ------------------------------------- -- 1.0/1.1 MB 604.9 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 1.0/1.1 MB 605.6 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 1.0/1.1 MB 600.6 kB/s eta 0:00:01\n",
      "   ---------------------------------------  1.1/1.1 MB 597.2 kB/s eta 0:00:01\n",
      "   ---------------------------------------- 1.1/1.1 MB 582.5 kB/s eta 0:00:00\n",
      "Downloading aiohttp-3.13.0-cp312-cp312-win_amd64.whl (451 kB)\n",
      "   ---------------------------------------- 0.0/451.4 kB ? eta -:--:--\n",
      "   -- ------------------------------------ 30.7/451.4 kB 435.7 kB/s eta 0:00:01\n",
      "   --- ----------------------------------- 41.0/451.4 kB 487.6 kB/s eta 0:00:01\n",
      "   ----- --------------------------------- 61.4/451.4 kB 544.7 kB/s eta 0:00:01\n",
      "   ------- ------------------------------- 92.2/451.4 kB 476.3 kB/s eta 0:00:01\n",
      "   --------- ---------------------------- 112.6/451.4 kB 467.6 kB/s eta 0:00:01\n",
      "   ---------- --------------------------- 122.9/451.4 kB 450.6 kB/s eta 0:00:01\n",
      "   ------------- ------------------------ 163.8/451.4 kB 490.7 kB/s eta 0:00:01\n",
      "   -------------- ----------------------- 174.1/451.4 kB 476.3 kB/s eta 0:00:01\n",
      "   ----------------- -------------------- 204.8/451.4 kB 479.2 kB/s eta 0:00:01\n",
      "   ------------------ ------------------- 225.3/451.4 kB 491.0 kB/s eta 0:00:01\n",
      "   --------------------- ---------------- 256.0/451.4 kB 491.5 kB/s eta 0:00:01\n",
      "   ----------------------- -------------- 276.5/451.4 kB 501.4 kB/s eta 0:00:01\n",
      "   ------------------------- ------------ 307.2/451.4 kB 499.9 kB/s eta 0:00:01\n",
      "   --------------------------- ---------- 327.7/451.4 kB 507.9 kB/s eta 0:00:01\n",
      "   ------------------------------ ------- 358.4/451.4 kB 506.0 kB/s eta 0:00:01\n",
      "   -------------------------------- ----- 389.1/451.4 kB 515.5 kB/s eta 0:00:01\n",
      "   ---------------------------------- --- 409.6/451.4 kB 511.3 kB/s eta 0:00:01\n",
      "   -------------------------------------  440.3/451.4 kB 519.4 kB/s eta 0:00:01\n",
      "   -------------------------------------- 451.4/451.4 kB 504.2 kB/s eta 0:00:00\n",
      "Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB)\n",
      "   ---------------------------------------- 0.0/112.2 kB ? eta -:--:--\n",
      "   ---------- ----------------------------- 30.7/112.2 kB 1.4 MB/s eta 0:00:01\n",
      "   -------------- ------------------------ 41.0/112.2 kB 667.8 kB/s eta 0:00:01\n",
      "   ---------------------------- ---------- 81.9/112.2 kB 770.8 kB/s eta 0:00:01\n",
      "   ---------------------------------- --- 102.4/112.2 kB 590.8 kB/s eta 0:00:01\n",
      "   -------------------------------------- 112.2/112.2 kB 502.1 kB/s eta 0:00:00\n",
      "Downloading mini_racer-0.12.4-py3-none-win_amd64.whl (13.7 MB)\n",
      "   ---------------------------------------- 0.0/13.7 MB ? eta -:--:--\n",
      "   ---------------------------------------- 0.0/13.7 MB 660.6 kB/s eta 0:00:21\n",
      "   ---------------------------------------- 0.1/13.7 MB 656.4 kB/s eta 0:00:21\n",
      "   ---------------------------------------- 0.1/13.7 MB 660.6 kB/s eta 0:00:21\n",
      "   ---------------------------------------- 0.1/13.7 MB 654.9 kB/s eta 0:00:21\n",
      "   ---------------------------------------- 0.2/13.7 MB 612.6 kB/s eta 0:00:23\n",
      "    --------------------------------------- 0.2/13.7 MB 619.5 kB/s eta 0:00:22\n",
      "    --------------------------------------- 0.2/13.7 MB 655.1 kB/s eta 0:00:21\n",
      "    --------------------------------------- 0.2/13.7 MB 628.1 kB/s eta 0:00:22\n",
      "    --------------------------------------- 0.3/13.7 MB 630.9 kB/s eta 0:00:22\n",
      "    --------------------------------------- 0.3/13.7 MB 656.4 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.3/13.7 MB 656.2 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.4/13.7 MB 655.9 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.4/13.7 MB 656.2 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.4/13.7 MB 656.0 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.5/13.7 MB 655.8 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.5/13.7 MB 655.7 kB/s eta 0:00:21\n",
      "   - -------------------------------------- 0.5/13.7 MB 668.1 kB/s eta 0:00:20\n",
      "   - -------------------------------------- 0.6/13.7 MB 668.1 kB/s eta 0:00:20\n",
      "   - -------------------------------------- 0.6/13.7 MB 678.8 kB/s eta 0:00:20\n",
      "   - -------------------------------------- 0.6/13.7 MB 677.6 kB/s eta 0:00:20\n",
      "   - -------------------------------------- 0.7/13.7 MB 676.4 kB/s eta 0:00:20\n",
      "   -- ------------------------------------- 0.7/13.7 MB 686.0 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.7/13.7 MB 684.6 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.8/13.7 MB 682.7 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.8/13.7 MB 690.2 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.8/13.7 MB 689.4 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.9/13.7 MB 704.5 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 0.9/13.7 MB 694.0 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 1.0/13.7 MB 701.5 kB/s eta 0:00:19\n",
      "   -- ------------------------------------- 1.0/13.7 MB 706.5 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.0/13.7 MB 704.7 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.1/13.7 MB 710.0 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.1/13.7 MB 708.3 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.1/13.7 MB 713.5 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.2/13.7 MB 718.0 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.2/13.7 MB 722.3 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.3/13.7 MB 726.4 kB/s eta 0:00:18\n",
      "   --- ------------------------------------ 1.3/13.7 MB 730.2 kB/s eta 0:00:17\n",
      "   --- ------------------------------------ 1.3/13.7 MB 728.2 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.4/13.7 MB 737.3 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.4/13.7 MB 735.2 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.5/13.7 MB 739.3 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.5/13.7 MB 747.5 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.5/13.7 MB 745.4 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.6/13.7 MB 753.4 kB/s eta 0:00:17\n",
      "   ---- ----------------------------------- 1.6/13.7 MB 755.2 kB/s eta 0:00:16\n",
      "   ---- ----------------------------------- 1.7/13.7 MB 758.5 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.7/13.7 MB 765.5 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.8/13.7 MB 762.3 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.8/13.7 MB 769.8 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.8/13.7 MB 766.9 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.9/13.7 MB 773.7 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 1.9/13.7 MB 780.6 kB/s eta 0:00:16\n",
      "   ----- ---------------------------------- 2.0/13.7 MB 782.3 kB/s eta 0:00:15\n",
      "   ----- ---------------------------------- 2.0/13.7 MB 779.4 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.1/13.7 MB 785.0 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.1/13.7 MB 787.4 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.1/13.7 MB 787.4 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.2/13.7 MB 796.2 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.2/13.7 MB 798.1 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.3/13.7 MB 791.5 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.3/13.7 MB 793.7 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.4/13.7 MB 790.1 kB/s eta 0:00:15\n",
      "   ------ --------------------------------- 2.4/13.7 MB 788.0 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.4/13.7 MB 789.8 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.5/13.7 MB 791.3 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.5/13.7 MB 788.4 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.5/13.7 MB 793.6 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.6/13.7 MB 790.8 kB/s eta 0:00:15\n",
      "   ------- -------------------------------- 2.6/13.7 MB 792.0 kB/s eta 0:00:14\n",
      "   ------- -------------------------------- 2.7/13.7 MB 793.8 kB/s eta 0:00:14\n",
      "   ------- -------------------------------- 2.7/13.7 MB 791.9 kB/s eta 0:00:14\n",
      "   ------- -------------------------------- 2.7/13.7 MB 793.7 kB/s eta 0:00:14\n",
      "   ------- -------------------------------- 2.7/13.7 MB 796.0 kB/s eta 0:00:14\n",
      "   ------- -------------------------------- 2.7/13.7 MB 796.0 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 2.8/13.7 MB 794.6 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 2.8/13.7 MB 793.9 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 2.9/13.7 MB 791.6 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 2.9/13.7 MB 786.4 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 2.9/13.7 MB 784.9 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 3.0/13.7 MB 783.3 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 3.0/13.7 MB 782.1 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 3.0/13.7 MB 780.7 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 3.0/13.7 MB 779.2 kB/s eta 0:00:14\n",
      "   -------- ------------------------------- 3.1/13.7 MB 778.1 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.1/13.7 MB 778.8 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.1/13.7 MB 775.3 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.2/13.7 MB 773.9 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.2/13.7 MB 775.0 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.2/13.7 MB 773.7 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.3/13.7 MB 772.3 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.3/13.7 MB 771.0 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.3/13.7 MB 769.7 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.4/13.7 MB 771.0 kB/s eta 0:00:14\n",
      "   --------- ------------------------------ 3.4/13.7 MB 769.7 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.4/13.7 MB 765.8 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.4/13.7 MB 765.8 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.4/13.7 MB 752.2 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.5/13.7 MB 764.7 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.5/13.7 MB 761.6 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.6/13.7 MB 755.5 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.6/13.7 MB 757.5 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.6/13.7 MB 754.3 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.6/13.7 MB 754.3 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.6/13.7 MB 748.1 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 747.6 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 744.6 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 739.6 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 739.2 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 739.2 kB/s eta 0:00:14\n",
      "   ---------- ----------------------------- 3.7/13.7 MB 739.2 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 728.9 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 722.2 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 717.4 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 713.0 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 713.0 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.8/13.7 MB 708.6 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 706.3 kB/s eta 0:00:14\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 700.0 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 695.9 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 689.9 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 687.8 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 684.0 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 3.9/13.7 MB 682.1 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 680.1 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 674.5 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 672.6 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 672.6 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 672.6 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 663.8 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.0/13.7 MB 665.5 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.1/13.7 MB 660.4 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.1/13.7 MB 657.1 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.1/13.7 MB 653.7 kB/s eta 0:00:15\n",
      "   ----------- ---------------------------- 4.1/13.7 MB 653.7 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.1/13.7 MB 648.9 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.1/13.7 MB 645.7 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.1/13.7 MB 642.6 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.2/13.7 MB 639.6 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.2/13.7 MB 638.1 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.2/13.7 MB 638.1 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.2/13.7 MB 633.7 kB/s eta 0:00:15\n",
      "   ------------ --------------------------- 4.2/13.7 MB 630.8 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.2/13.7 MB 627.9 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.2/13.7 MB 628.0 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 625.2 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 622.5 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 621.2 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 619.8 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 617.3 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.3/13.7 MB 617.5 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.4/13.7 MB 614.8 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.4/13.7 MB 613.6 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.4/13.7 MB 612.4 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.4/13.7 MB 611.2 kB/s eta 0:00:16\n",
      "   ------------ --------------------------- 4.4/13.7 MB 608.9 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.5/13.7 MB 609.0 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.5/13.7 MB 606.6 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.5/13.7 MB 605.5 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.5/13.7 MB 604.5 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.5/13.7 MB 603.3 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.6/13.7 MB 601.3 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.6/13.7 MB 600.3 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.6/13.7 MB 598.2 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.6/13.7 MB 598.2 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.6/13.7 MB 598.2 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.7/13.7 MB 595.2 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.7/13.7 MB 592.9 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.7/13.7 MB 590.9 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.7/13.7 MB 588.7 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.7/13.7 MB 589.0 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.8/13.7 MB 586.9 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.8/13.7 MB 584.8 kB/s eta 0:00:16\n",
      "   ------------- -------------------------- 4.8/13.7 MB 583.9 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.8/13.7 MB 581.9 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.8/13.7 MB 582.1 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.8/13.7 MB 582.1 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.8/13.7 MB 578.2 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.9/13.7 MB 578.5 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.9/13.7 MB 576.5 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.9/13.7 MB 575.7 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.9/13.7 MB 576.0 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 4.9/13.7 MB 574.4 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.0/13.7 MB 572.4 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.0/13.7 MB 572.7 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.0/13.7 MB 572.0 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.0/13.7 MB 570.1 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.0/13.7 MB 569.5 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.1/13.7 MB 569.9 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.1/13.7 MB 569.1 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.1/13.7 MB 567.6 kB/s eta 0:00:16\n",
      "   -------------- ------------------------- 5.1/13.7 MB 566.8 kB/s eta 0:00:16\n",
      "   --------------- ------------------------ 5.1/13.7 MB 567.1 kB/s eta 0:00:16\n",
      "   --------------- ------------------------ 5.2/13.7 MB 565.6 kB/s eta 0:00:16\n",
      "   --------------- ------------------------ 5.2/13.7 MB 565.9 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.2/13.7 MB 564.5 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.3/13.7 MB 563.9 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.3/13.7 MB 564.3 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.3/13.7 MB 563.8 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.3/13.7 MB 564.1 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.4/13.7 MB 563.6 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.4/13.7 MB 562.9 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.4/13.7 MB 564.4 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.4/13.7 MB 562.7 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.4/13.7 MB 562.2 kB/s eta 0:00:15\n",
      "   --------------- ------------------------ 5.5/13.7 MB 563.4 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.5/13.7 MB 562.9 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.5/13.7 MB 562.5 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.6/13.7 MB 562.8 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.6/13.7 MB 563.3 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.6/13.7 MB 562.8 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.6/13.7 MB 563.1 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.7/13.7 MB 563.5 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.7/13.7 MB 563.1 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.7/13.7 MB 563.6 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.7/13.7 MB 563.7 kB/s eta 0:00:15\n",
      "   ---------------- ----------------------- 5.7/13.7 MB 563.7 kB/s eta 0:00:15\n",
      "   ----------------- ---------------------- 5.8/13.7 MB 564.7 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.8/13.7 MB 563.2 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.8/13.7 MB 564.3 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.9/13.7 MB 562.2 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.9/13.7 MB 562.5 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.9/13.7 MB 561.7 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 5.9/13.7 MB 561.7 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.0/13.7 MB 559.9 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.0/13.7 MB 561.1 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.0/13.7 MB 557.4 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.0/13.7 MB 556.7 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.0/13.7 MB 556.2 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.1/13.7 MB 555.7 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.1/13.7 MB 553.8 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.1/13.7 MB 553.1 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.1/13.7 MB 552.6 kB/s eta 0:00:14\n",
      "   ----------------- ---------------------- 6.1/13.7 MB 552.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 551.5 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 551.0 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 549.6 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 550.0 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 548.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.2/13.7 MB 548.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.3/13.7 MB 547.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.3/13.7 MB 546.6 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.3/13.7 MB 546.9 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.3/13.7 MB 545.9 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.3/13.7 MB 544.5 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.4/13.7 MB 544.8 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.4/13.7 MB 543.8 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.4/13.7 MB 544.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.4/13.7 MB 543.6 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.5/13.7 MB 544.1 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.5/13.7 MB 543.6 kB/s eta 0:00:14\n",
      "   ------------------ --------------------- 6.5/13.7 MB 543.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.5/13.7 MB 542.9 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 541.8 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 541.2 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 540.8 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 539.2 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 538.8 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 538.8 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.6/13.7 MB 538.8 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.7/13.7 MB 536.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.7/13.7 MB 535.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.7/13.7 MB 534.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.7/13.7 MB 534.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.7/13.7 MB 532.9 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 531.9 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 531.9 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 530.1 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 529.1 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 528.6 kB/s eta 0:00:14\n",
      "   ------------------- -------------------- 6.8/13.7 MB 527.6 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.8/13.7 MB 526.0 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 524.9 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 525.2 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 523.5 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 523.2 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 522.9 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 6.9/13.7 MB 521.8 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 521.5 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 521.1 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 520.8 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 519.9 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 519.4 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.0/13.7 MB 519.2 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.1/13.7 MB 518.4 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.1/13.7 MB 518.8 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.1/13.7 MB 517.7 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.1/13.7 MB 517.6 kB/s eta 0:00:13\n",
      "   -------------------- ------------------- 7.2/13.7 MB 517.6 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.2/13.7 MB 516.9 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.2/13.7 MB 516.2 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.2/13.7 MB 516.6 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.3/13.7 MB 516.1 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.3/13.7 MB 516.0 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.3/13.7 MB 515.8 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.3/13.7 MB 516.2 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.4/13.7 MB 516.0 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.4/13.7 MB 515.9 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.4/13.7 MB 516.2 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.4/13.7 MB 516.1 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.5/13.7 MB 516.2 kB/s eta 0:00:13\n",
      "   --------------------- ------------------ 7.5/13.7 MB 516.2 kB/s eta 0:00:12\n",
      "   --------------------- ------------------ 7.5/13.7 MB 515.8 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.5/13.7 MB 515.8 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.6/13.7 MB 516.9 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.6/13.7 MB 516.5 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.6/13.7 MB 516.4 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.7/13.7 MB 516.9 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.7/13.7 MB 517.1 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.7/13.7 MB 517.0 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.7/13.7 MB 516.7 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.8/13.7 MB 516.6 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.8/13.7 MB 517.8 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.8/13.7 MB 517.4 kB/s eta 0:00:12\n",
      "   ---------------------- ----------------- 7.8/13.7 MB 518.3 kB/s eta 0:00:12\n",
      "   ----------------------- ---------------- 7.9/13.7 MB 518.9 kB/s eta 0:00:12\n",
      "   ----------------------- ---------------- 7.9/13.7 MB 518.8 kB/s eta 0:00:12\n",
      "   ----------------------- ---------------- 7.9/13.7 MB 519.2 kB/s eta 0:00:12\n",
      "   ----------------------- ---------------- 8.0/13.7 MB 519.6 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.0/13.7 MB 519.9 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.0/13.7 MB 520.3 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.0/13.7 MB 520.7 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.1/13.7 MB 520.6 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.1/13.7 MB 522.2 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.2/13.7 MB 522.1 kB/s eta 0:00:11\n",
      "   ----------------------- ---------------- 8.2/13.7 MB 522.5 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.2/13.7 MB 523.4 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.2/13.7 MB 523.8 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.3/13.7 MB 524.3 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.3/13.7 MB 524.7 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.3/13.7 MB 525.6 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.4/13.7 MB 526.2 kB/s eta 0:00:11\n",
      "   ------------------------ --------------- 8.4/13.7 MB 527.1 kB/s eta 0:00:10\n",
      "   ------------------------ --------------- 8.5/13.7 MB 527.5 kB/s eta 0:00:10\n",
      "   ------------------------ --------------- 8.5/13.7 MB 527.9 kB/s eta 0:00:10\n",
      "   ------------------------ --------------- 8.5/13.7 MB 529.0 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.6/13.7 MB 529.3 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.6/13.7 MB 530.9 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.7/13.7 MB 531.4 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.7/13.7 MB 532.3 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.7/13.7 MB 533.2 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.8/13.7 MB 534.3 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.8/13.7 MB 534.6 kB/s eta 0:00:10\n",
      "   ------------------------- -------------- 8.8/13.7 MB 535.5 kB/s eta 0:00:10\n",
      "   -------------------------- ------------- 8.9/13.7 MB 536.5 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 8.9/13.7 MB 536.9 kB/s eta 0:00:09Note: you may need to restart the kernel to use updated packages.\n",
      "\n",
      "   -------------------------- ------------- 9.0/13.7 MB 538.5 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.0/13.7 MB 538.8 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.0/13.7 MB 539.6 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.1/13.7 MB 540.6 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.1/13.7 MB 541.0 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.2/13.7 MB 542.5 kB/s eta 0:00:09\n",
      "   -------------------------- ------------- 9.2/13.7 MB 542.8 kB/s eta 0:00:09\n",
      "   --------------------------- ------------ 9.2/13.7 MB 544.3 kB/s eta 0:00:09\n",
      "   --------------------------- ------------ 9.2/13.7 MB 544.3 kB/s eta 0:00:09\n",
      "   --------------------------- ------------ 9.2/13.7 MB 544.3 kB/s eta 0:00:09\n",
      "   --------------------------- ------------ 9.4/13.7 MB 545.9 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.4/13.7 MB 546.7 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.4/13.7 MB 546.4 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.4/13.7 MB 546.7 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.5/13.7 MB 547.0 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.5/13.7 MB 547.4 kB/s eta 0:00:08\n",
      "   --------------------------- ------------ 9.5/13.7 MB 547.7 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.6/13.7 MB 548.5 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.6/13.7 MB 548.8 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.6/13.7 MB 549.1 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.7/13.7 MB 549.9 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.7/13.7 MB 550.2 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.8/13.7 MB 551.2 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.8/13.7 MB 551.4 kB/s eta 0:00:08\n",
      "   ---------------------------- ----------- 9.8/13.7 MB 551.7 kB/s eta 0:00:07\n",
      "   ---------------------------- ----------- 9.9/13.7 MB 552.5 kB/s eta 0:00:07\n",
      "   ---------------------------- ----------- 9.9/13.7 MB 553.4 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.0/13.7 MB 554.3 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.0/13.7 MB 554.6 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.0/13.7 MB 554.8 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.1/13.7 MB 556.2 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.1/13.7 MB 556.4 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.1/13.7 MB 557.2 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.2/13.7 MB 557.7 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.2/13.7 MB 557.9 kB/s eta 0:00:07\n",
      "   ----------------------------- ---------- 10.3/13.7 MB 560.0 kB/s eta 0:00:07\n",
      "   ------------------------------ --------- 10.3/13.7 MB 559.6 kB/s eta 0:00:07\n",
      "   ------------------------------ --------- 10.3/13.7 MB 560.5 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.4/13.7 MB 561.0 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.4/13.7 MB 561.0 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.5/13.7 MB 561.5 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.5/13.7 MB 562.0 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.5/13.7 MB 562.4 kB/s eta 0:00:06\n",
      "   ------------------------------ --------- 10.6/13.7 MB 562.4 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.6/13.7 MB 562.9 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.7/13.7 MB 563.4 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.7/13.7 MB 563.9 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.7/13.7 MB 563.9 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.8/13.7 MB 564.9 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.8/13.7 MB 564.4 kB/s eta 0:00:06\n",
      "   ------------------------------- -------- 10.9/13.7 MB 565.4 kB/s eta 0:00:05\n",
      "   ------------------------------- -------- 10.9/13.7 MB 565.9 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.0/13.7 MB 565.9 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.0/13.7 MB 566.8 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.0/13.7 MB 566.8 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.1/13.7 MB 566.4 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.1/13.7 MB 565.9 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.1/13.7 MB 565.9 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.2/13.7 MB 565.4 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.2/13.7 MB 564.4 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.2/13.7 MB 565.4 kB/s eta 0:00:05\n",
      "   -------------------------------- ------- 11.2/13.7 MB 564.4 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.3/13.7 MB 564.4 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.3/13.7 MB 564.4 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.3/13.7 MB 563.9 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.4/13.7 MB 563.9 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.4/13.7 MB 563.4 kB/s eta 0:00:05\n",
      "   --------------------------------- ------ 11.5/13.7 MB 563.4 kB/s eta 0:00:04\n",
      "   --------------------------------- ------ 11.5/13.7 MB 562.9 kB/s eta 0:00:04\n",
      "   --------------------------------- ------ 11.5/13.7 MB 562.9 kB/s eta 0:00:04\n",
      "   --------------------------------- ------ 11.6/13.7 MB 562.9 kB/s eta 0:00:04\n",
      "   --------------------------------- ------ 11.6/13.7 MB 562.9 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.6/13.7 MB 563.0 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.7/13.7 MB 562.5 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.7/13.7 MB 562.5 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.8/13.7 MB 562.5 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.8/13.7 MB 562.0 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.8/13.7 MB 562.0 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.9/13.7 MB 562.0 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.9/13.7 MB 561.5 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.9/13.7 MB 560.5 kB/s eta 0:00:04\n",
      "   ---------------------------------- ----- 11.9/13.7 MB 560.0 kB/s eta 0:00:04\n",
      "   ----------------------------------- ---- 12.0/13.7 MB 560.0 kB/s eta 0:00:04\n",
      "   ----------------------------------- ---- 12.0/13.7 MB 559.1 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.0/13.7 MB 559.1 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 557.2 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 557.2 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 555.8 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 555.8 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 553.9 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 553.9 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.1/13.7 MB 552.5 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 551.1 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 550.6 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 549.2 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 547.9 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 546.0 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.2/13.7 MB 544.7 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.3/13.7 MB 543.8 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.3/13.7 MB 543.8 kB/s eta 0:00:03\n",
      "   ----------------------------------- ---- 12.3/13.7 MB 542.0 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.3/13.7 MB 541.1 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.3/13.7 MB 542.9 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.3/13.7 MB 541.5 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.4/13.7 MB 540.2 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.4/13.7 MB 539.3 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.4/13.7 MB 538.0 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.4/13.7 MB 536.7 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 535.8 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 534.9 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 534.5 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 534.0 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 533.6 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.5/13.7 MB 532.7 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.6/13.7 MB 531.8 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.6/13.7 MB 531.8 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.6/13.7 MB 531.4 kB/s eta 0:00:03\n",
      "   ------------------------------------ --- 12.6/13.7 MB 531.0 kB/s eta 0:00:02\n",
      "   ------------------------------------ --- 12.6/13.7 MB 530.1 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.7/13.7 MB 529.3 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.7/13.7 MB 528.8 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.7/13.7 MB 528.8 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.7/13.7 MB 528.0 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.8/13.7 MB 527.6 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.8/13.7 MB 527.1 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.8/13.7 MB 526.7 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.8/13.7 MB 526.7 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.9/13.7 MB 525.4 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.9/13.7 MB 524.6 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.9/13.7 MB 525.0 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.9/13.7 MB 523.7 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 12.9/13.7 MB 523.3 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 13.0/13.7 MB 522.9 kB/s eta 0:00:02\n",
      "   ------------------------------------- -- 13.0/13.7 MB 522.9 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.0/13.7 MB 522.5 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.0/13.7 MB 521.7 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.1/13.7 MB 522.1 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.1/13.7 MB 520.8 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.1/13.7 MB 520.0 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.1/13.7 MB 520.0 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.1/13.7 MB 520.0 kB/s eta 0:00:02\n",
      "   -------------------------------------- - 13.2/13.7 MB 519.2 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.2/13.7 MB 518.8 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.2/13.7 MB 518.0 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.2/13.7 MB 518.4 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.2/13.7 MB 517.5 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.3/13.7 MB 516.7 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.3/13.7 MB 516.8 kB/s eta 0:00:01\n",
      "   -------------------------------------- - 13.3/13.7 MB 516.3 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.3/13.7 MB 515.9 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.4/13.7 MB 515.9 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.4/13.7 MB 516.3 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.4/13.7 MB 515.1 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.4/13.7 MB 514.7 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.5/13.7 MB 514.3 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.5/13.7 MB 513.9 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.5/13.7 MB 513.9 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.5/13.7 MB 513.5 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.6/13.7 MB 513.1 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.6/13.7 MB 513.1 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.6/13.7 MB 513.1 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.6/13.7 MB 512.7 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.7/13.7 MB 514.7 kB/s eta 0:00:01\n",
      "   ---------------------------------------  13.7/13.7 MB 514.7 kB/s eta 0:00:01\n",
      "   ---------------------------------------- 13.7/13.7 MB 512.0 kB/s eta 0:00:00\n",
      "Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl (15 kB)\n",
      "Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB)\n",
      "Downloading propcache-0.4.1-cp312-cp312-win_amd64.whl (41 kB)\n",
      "   ---------------------------------------- 0.0/41.7 kB ? eta -:--:--\n",
      "   ----------------------------- ---------- 30.7/41.7 kB 1.3 MB/s eta 0:00:01\n",
      "   ---------------------------------------- 41.7/41.7 kB 402.8 kB/s eta 0:00:00\n",
      "Downloading yarl-1.22.0-cp312-cp312-win_amd64.whl (87 kB)\n",
      "   ---------------------------------------- 0.0/87.2 kB ? eta -:--:--\n",
      "   -------------- ------------------------- 30.7/87.2 kB 1.4 MB/s eta 0:00:01\n",
      "   ---------------------------- ----------- 61.4/87.2 kB 656.4 kB/s eta 0:00:01\n",
      "   ------------------------------------- -- 81.9/87.2 kB 573.4 kB/s eta 0:00:01\n",
      "   ---------------------------------------- 87.2/87.2 kB 549.8 kB/s eta 0:00:00\n",
      "Building wheels for collected packages: jsonpath\n",
      "  Building wheel for jsonpath (setup.py): started\n",
      "  Building wheel for jsonpath (setup.py): finished with status 'done'\n",
      "  Created wheel for jsonpath: filename=jsonpath-0.82.2-py3-none-any.whl size=5628 sha256=d6184cddf66a7f7ca7c40f7a23548082e2d96f57c5271c255e368b30cb67bfb7\n",
      "  Stored in directory: c:\\users\\27855\\appdata\\local\\pip\\cache\\wheels\\73\\76\\e2\\980a29341fe37a583ada29594ed529708d5e8e2c0f9d97c3cc\n",
      "Successfully built jsonpath\n",
      "Installing collected packages: jsonpath, propcache, mini-racer, html5lib, aiosignal, aiohappyeyeballs, yarl, aiohttp, akshare\n",
      "  Attempting uninstall: aiosignal\n",
      "    Found existing installation: aiosignal 1.2.0\n",
      "    Uninstalling aiosignal-1.2.0:\n",
      "      Successfully uninstalled aiosignal-1.2.0\n",
      "  Attempting uninstall: yarl\n",
      "    Found existing installation: yarl 1.9.3\n",
      "    Uninstalling yarl-1.9.3:\n",
      "      Successfully uninstalled yarl-1.9.3\n",
      "  Attempting uninstall: aiohttp\n",
      "    Found existing installation: aiohttp 3.9.5\n",
      "    Uninstalling aiohttp-3.9.5:\n",
      "      Successfully uninstalled aiohttp-3.9.5\n",
      "Successfully installed aiohappyeyeballs-2.6.1 aiohttp-3.13.0 aiosignal-1.4.0 akshare-1.17.63 html5lib-1.1 jsonpath-0.82.2 mini-racer-0.12.4 propcache-0.4.1 yarl-1.22.0\n"
     ]
    }
   ],
   "source": [
    "pip install akshare"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "de285cd2-5415-4a1b-bf18-721c8d9365ab",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "import pandas as pd  \n",
    "import matplotlib.pyplot as plt  \n",
    "from sklearn.ensemble import RandomForestClassifier  \n",
    "from sklearn.metrics import accuracy_score  \n",
    "import warnings\n",
    "import tushare as ts\n",
    "warnings.filterwarnings(\"ignore\") "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d041c67f-d81c-4692-ac2b-207b53c7502e",
   "metadata": {},
   "source": [
    "### 将8.2节股票基本数据和股票衍生变量数据的相关代码汇总"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "9f17ce1c-a31d-4ce3-9e45-1cc1e41d9e33",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "生成模拟股票数据...\n",
      "模拟数据形状: (1304, 5)\n",
      "数据处理完成！\n",
      "最终数据形状: (1284, 19)\n",
      "\n",
      "最后5行数据:\n",
      "                 open      close       high        low   volume  close-open  \\\n",
      "2019-12-25  82.081807  82.572978  83.734627  81.682418   975551    0.005984   \n",
      "2019-12-26  81.222643  81.476992  81.954369  81.222643  1230559    0.003132   \n",
      "2019-12-27  83.033029  83.109709  83.722036  82.777837  1021727    0.000923   \n",
      "2019-12-30  82.568977  82.819400  83.991515  82.520924   536948    0.003033   \n",
      "2019-12-31  80.677388  81.577005  81.755279  80.677388   853351    0.011151   \n",
      "\n",
      "            high-low  pre_close  price_change  p_change        MA5       MA10  \\\n",
      "2019-12-25  0.025124  82.043413      0.529565  0.645470  81.777833  80.422995   \n",
      "2019-12-26  0.009009  82.572978     -1.095986 -1.327294  81.956036  81.028053   \n",
      "2019-12-27  0.011406  81.476992      1.632716  2.003898  82.161784  81.410774   \n",
      "2019-12-30  0.017821  83.109709     -0.290309 -0.349308  82.404498  81.765426   \n",
      "2019-12-31  0.013361  82.819400     -1.242394 -1.500125  82.311217  81.861779   \n",
      "\n",
      "                  RSI       MOM      EMA12      EMA26      MACD  MACDsignal  \\\n",
      "2019-12-25  59.583959  1.827462  80.954792  80.449731  0.505061    0.245187   \n",
      "2019-12-26  62.461033  0.891016  81.035130  80.525824  0.509306    0.298011   \n",
      "2019-12-27  85.186225  1.028741  81.354296  80.717223  0.637073    0.365824   \n",
      "2019-12-30  82.271989  1.213571  81.579697  80.872940  0.706757    0.434010   \n",
      "2019-12-31  62.977236 -0.466407  81.579283  80.925093  0.654190    0.478046   \n",
      "\n",
      "            MACDhist  \n",
      "2019-12-25  0.259874  \n",
      "2019-12-26  0.211295  \n",
      "2019-12-27  0.271250  \n",
      "2019-12-30  0.272747  \n",
      "2019-12-31  0.176144  \n",
      "\n",
      "所有技术指标列:\n",
      "RSI: 数据范围 [7.2210, 99.3397]\n",
      "MOM: 数据范围 [-9.4000, 9.2917]\n",
      "EMA12: 数据范围 [22.7931, 82.9694]\n",
      "EMA26: 数据范围 [23.2938, 80.9251]\n",
      "MACD: 数据范围 [-1.8190, 3.4711]\n",
      "MACDsignal: 数据范围 [-1.4028, 3.3467]\n",
      "MACDhist: 数据范围 [-1.4632, 1.0442]\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "# 创建模拟股票数据\n",
    "def create_sample_stock_data():\n",
    "    \"\"\"创建模拟股票数据\"\"\"\n",
    "    # 生成交易日日期\n",
    "    dates = pd.date_range('2015-01-01', '2019-12-31', freq='D')\n",
    "    # 只保留工作日\n",
    "    dates = dates[dates.dayofweek < 5]\n",
    "    \n",
    "    np.random.seed(42)\n",
    "    n_days = len(dates)\n",
    "    \n",
    "    # 生成价格序列（随机游走）\n",
    "    returns = np.random.randn(n_days) * 0.02  # 日收益率\n",
    "    price = 30 * np.exp(np.cumsum(returns))  # 从30开始的价格\n",
    "    \n",
    "    # 创建DataFrame\n",
    "    df = pd.DataFrame({\n",
    "        'open': price * (1 + np.random.randn(n_days) * 0.005),\n",
    "        'close': price,\n",
    "        'high': price * (1 + np.abs(np.random.randn(n_days)) * 0.01),\n",
    "        'low': price * (1 - np.abs(np.random.randn(n_days)) * 0.01),\n",
    "        'volume': np.random.randint(500000, 2000000, n_days)\n",
    "    }, index=dates)\n",
    "    \n",
    "    # 确保high是最高价，low是最低价\n",
    "    df['high'] = np.maximum(df['high'], np.maximum(df['open'], df['close']))\n",
    "    df['low'] = np.minimum(df['low'], np.minimum(df['open'], df['close']))\n",
    "    \n",
    "    return df\n",
    "\n",
    "print(\"生成模拟股票数据...\")\n",
    "df = create_sample_stock_data()\n",
    "print(f\"模拟数据形状: {df.shape}\")\n",
    "\n",
    "# 2. 简单衍生变量构造\n",
    "df['close-open'] = (df['close'] - df['open']) / df['open']\n",
    "df['high-low'] = (df['high'] - df['low']) / df['low']\n",
    "\n",
    "df['pre_close'] = df['close'].shift(1)\n",
    "df['price_change'] = df['close'] - df['pre_close']\n",
    "df['p_change'] = (df['close'] - df['pre_close']) / df['pre_close'] * 100\n",
    "\n",
    "# 3. 移动平均线相关数据构造\n",
    "df['MA5'] = df['close'].rolling(5).mean()\n",
    "df['MA10'] = df['close'].rolling(10).mean()\n",
    "df.dropna(inplace=True)\n",
    "\n",
    "# 4. 技术指标计算函数\n",
    "def calculate_rsi(close_prices, period=14):\n",
    "    delta = close_prices.diff()\n",
    "    gain = (delta.where(delta > 0, 0)).rolling(window=period).mean()\n",
    "    loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean()\n",
    "    rs = gain / loss\n",
    "    rsi = 100 - (100 / (1 + rs))\n",
    "    return rsi\n",
    "\n",
    "def calculate_ema(close_prices, period):\n",
    "    return close_prices.ewm(span=period, adjust=False).mean()\n",
    "\n",
    "def calculate_mom(close_prices, period=5):\n",
    "    return close_prices.diff(period)\n",
    "\n",
    "def calculate_macd(close_prices, fast_period=12, slow_period=26, signal_period=9):\n",
    "    ema_fast = calculate_ema(close_prices, fast_period)\n",
    "    ema_slow = calculate_ema(close_prices, slow_period)\n",
    "    macd = ema_fast - ema_slow\n",
    "    macd_signal = macd.ewm(span=signal_period, adjust=False).mean()\n",
    "    macd_hist = macd - macd_signal\n",
    "    return macd, macd_signal, macd_hist\n",
    "\n",
    "# 计算技术指标\n",
    "df['RSI'] = calculate_rsi(df['close'], period=12)\n",
    "df['MOM'] = calculate_mom(df['close'], 5)  # 修正为MOM\n",
    "df['EMA12'] = calculate_ema(df['close'], 12)\n",
    "df['EMA26'] = calculate_ema(df['close'], 26)\n",
    "df['MACD'], df['MACDsignal'], df['MACDhist'] = calculate_macd(df['close'])\n",
    "df.dropna(inplace=True)\n",
    "\n",
    "print(\"数据处理完成！\")\n",
    "print(f\"最终数据形状: {df.shape}\")\n",
    "print(\"\\n最后5行数据:\")\n",
    "print(df.tail())\n",
    "\n",
    "print(\"\\n所有技术指标列:\")\n",
    "tech_columns = ['RSI', 'MOM', 'EMA12', 'EMA26', 'MACD', 'MACDsignal', 'MACDhist']\n",
    "for col in tech_columns:\n",
    "    if col in df.columns:\n",
    "        print(f\"{col}: 数据范围 [{df[col].min():.4f}, {df[col].max():.4f}]\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9849a298-c29e-4610-bbab-f9536bd8748f",
   "metadata": {},
   "source": [
    "####  提取特征变量目标变量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "b30132c3-bc8d-4b84-950d-af912f5a7257",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 提取特征变量\n",
    "X = df[['close', 'volume', 'close-open', 'MA5', 'MA10', 'high-low', 'RSI', 'MOM', 'EMA12', 'MACD', 'MACDsignal', 'MACDhist']]\n",
    "# 提取目标变量\n",
    "y = np.where(df['price_change'].shift(-1)> 0, 1, -1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a971c609-efad-40d2-8d1d-da2885747998",
   "metadata": {},
   "source": [
    "#### 划分训练集测试集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "62550026-e2e0-4b2b-bd0d-4c0c693ac384",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_length = X.shape[0]  # shape属性获取X的行数和列数，shape[0]即表示行数 \n",
    "split = int(X_length * 0.9)  # 前90%的数据作为训练集\n",
    "\n",
    "X_train, X_test = X[:split], X[split:]  # 特征向量\n",
    "y_train, y_test = y[:split], y[split:]  # 目标变量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dac687cd-1f57-4647-9c2f-0fec6a17b0a1",
   "metadata": {},
   "source": [
    "#### 搭建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "beaffab6-6c5d-4db7-9e94-4077995f6267",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(max_depth=3, min_samples_leaf=10, n_estimators=10,\n",
       "                       random_state=1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;RandomForestClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(max_depth=3, min_samples_leaf=10, n_estimators=10,\n",
       "                       random_state=1)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(max_depth=3, min_samples_leaf=10, n_estimators=10,\n",
       "                       random_state=1)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = RandomForestClassifier(max_depth=3, n_estimators=10, min_samples_leaf=10, random_state=1) # 查看书中P184的解释\n",
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e42e9c1c-a3e5-4695-b7d8-fe505c7fecc2",
   "metadata": {},
   "source": [
    "### 开始预测模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "7ae3a194-91d4-4d65-80bc-05a0b3f7cc9b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-1  1  1  1  1  1  1 -1 -1 -1  1  1 -1 -1  1 -1 -1  1  1  1  1  1 -1 -1\n",
      " -1 -1 -1  1 -1  1  1  1  1  1  1  1  1  1 -1 -1 -1 -1 -1 -1  1  1  1  1\n",
      "  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 -1 -1 -1  1  1  1 -1\n",
      "  1  1  1 -1  1 -1  1  1  1  1 -1 -1 -1 -1  1  1 -1  1  1 -1  1  1 -1 -1\n",
      "  1  1 -1 -1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 -1 -1 -1 -1\n",
      " -1  1 -1  1  1  1  1  1  1]\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(X_test)\n",
    "print(y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "9eae3b39-37c4-4cf0-b7c9-9f3335a525a7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测值</th>\n",
       "      <th>实际值</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   预测值  实际值\n",
       "0   -1   -1\n",
       "1    1   -1\n",
       "2    1   -1\n",
       "3    1   -1\n",
       "4    1    1"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = pd.DataFrame()  # 创建一个空DataFrame \n",
    "a['预测值'] = list(y_pred)\n",
    "a['实际值'] = list(y_test)\n",
    "a.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "f0dacc2a-915b-4d53-84ac-0ed3d5838bec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.5167356 , 0.4832644 ],\n",
       "       [0.3934078 , 0.6065922 ],\n",
       "       [0.4578035 , 0.5421965 ],\n",
       "       [0.46915738, 0.53084262],\n",
       "       [0.49948485, 0.50051515]])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_proba = model.predict_proba(X_test)\n",
    "y_pred_proba[0:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d6888f42-4d3c-4a92-a881-3481c54fe16a",
   "metadata": {},
   "source": [
    "### 模型评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "19e3cca0-c3ca-4f80-8841-d799ca3ebab4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.46511627906976744\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "score = accuracy_score(y_pred, y_test)\n",
    "print(score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "eb0754f8-5ffd-4a6d-b586-fd2917343230",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.46511627906976744"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "ea48bdda-d62e-4f7b-ba86-8ffa17936771",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>特征</th>\n",
       "      <th>特征重要性</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>MOM</td>\n",
       "      <td>0.158751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>close-open</td>\n",
       "      <td>0.130058</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>volume</td>\n",
       "      <td>0.107299</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>EMA12</td>\n",
       "      <td>0.101998</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>high-low</td>\n",
       "      <td>0.098577</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>close</td>\n",
       "      <td>0.090692</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>MACD</td>\n",
       "      <td>0.083605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>MACDsignal</td>\n",
       "      <td>0.068327</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>MA5</td>\n",
       "      <td>0.054919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MA10</td>\n",
       "      <td>0.041947</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>MACDhist</td>\n",
       "      <td>0.033460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>RSI</td>\n",
       "      <td>0.030367</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            特征     特征重要性\n",
       "7          MOM  0.158751\n",
       "2   close-open  0.130058\n",
       "1       volume  0.107299\n",
       "8        EMA12  0.101998\n",
       "5     high-low  0.098577\n",
       "0        close  0.090692\n",
       "9         MACD  0.083605\n",
       "10  MACDsignal  0.068327\n",
       "3          MA5  0.054919\n",
       "4         MA10  0.041947\n",
       "11    MACDhist  0.033460\n",
       "6          RSI  0.030367"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "features = X.columns  \n",
    "importances = model.feature_importances_\n",
    "a = pd.DataFrame()\n",
    "a['特征'] = features\n",
    "a['特征重要性'] = importances\n",
    "a = a.sort_values('特征重要性', ascending=False)\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af081839-8462-48df-b4e6-dc63a5142ae7",
   "metadata": {},
   "source": [
    "### 收益回测曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "b30b6e39-6433-46eb-9ce3-e1799e200a8e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>strategy</th>\n",
       "      <th>origin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-12-25</th>\n",
       "      <td>0.957233</td>\n",
       "      <td>0.987789</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-26</th>\n",
       "      <td>0.944528</td>\n",
       "      <td>0.974679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-27</th>\n",
       "      <td>0.963455</td>\n",
       "      <td>0.994210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-30</th>\n",
       "      <td>0.960090</td>\n",
       "      <td>0.990737</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-31</th>\n",
       "      <td>0.945687</td>\n",
       "      <td>0.975875</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            strategy    origin\n",
       "2019-12-25  0.957233  0.987789\n",
       "2019-12-26  0.944528  0.974679\n",
       "2019-12-27  0.963455  0.994210\n",
       "2019-12-30  0.960090  0.990737\n",
       "2019-12-31  0.945687  0.975875"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test['prediction'] = model.predict(X_test)\n",
    "X_test['p_change'] = (X_test['close'] - X_test['close'].shift(1)) / X_test['close'].shift(1)\n",
    "\n",
    "X_test['origin'] = (X_test['p_change'] + 1).cumprod()\n",
    "X_test['strategy'] = (X_test['prediction'].shift(1) * X_test['p_change'] + 1).cumprod()\n",
    "\n",
    "X_test[['strategy', 'origin']].tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "349c743f-047b-4014-90e4-f407e26ebe26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_test[['strategy', 'origin']].dropna().plot()\n",
    "plt.gcf().autofmt_xdate()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7e79d27-c046-4252-a5e8-0504f8b63424",
   "metadata": {},
   "source": [
    "## 其他模型对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "220d0797-fe17-4f18-ba9e-637c59667562",
   "metadata": {},
   "outputs": [],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.ensemble import GradientBoostingClassifier, AdaBoostClassifier\n",
    "from xgboost import XGBClassifier\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "\n",
    "# 设置中文字体\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "8829ce9b-c05d-400b-a4ea-4bab7cee3f76",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正在获取股票数据...\n",
      "获取数据失败: \"None of ['date'] are in the columns\"，使用模拟数据\n",
      "正在构造特征...\n",
      "最终数据形状: (1285, 21)\n",
      "训练集大小: (1028, 12), 测试集大小: (257, 12)\n",
      "\n",
      "开始训练模型...\n",
      "==================================================\n",
      "训练 逻辑回归 模型中...\n",
      "逻辑回归 准确率: 0.4747\n",
      "训练 支持向量机 模型中...\n",
      "支持向量机 准确率: 0.5525\n",
      "训练 K近邻 模型中...\n",
      "K近邻 准确率: 0.5097\n",
      "训练 朴素贝叶斯 模型中...\n",
      "朴素贝叶斯 准确率: 0.5292\n",
      "训练 梯度提升 模型中...\n",
      "梯度提升 准确率: 0.4669\n",
      "训练 AdaBoost 模型中...\n",
      "AdaBoost 准确率: 0.4630\n",
      "训练 XGBoost 模型中...\n",
      "XGBoost 准确率: 0.4786\n",
      "训练 神经网络 模型中...\n",
      "神经网络 准确率: 0.4903\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPeCAYAAAB3GThSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xl8THf7//H3JJNFIpHEltpjbVEUQUvtRWuvokqL4rYUVa2qtZYWtRYtailttRSlllapFrUvsZQqlVQq9jWbJJNkcn5/+OV8jcRWIVN5PR+P87hzPudzzlxnJndNrrnm+lgMwzAEAAAAAAAAAHAKLpkdAAAAAAAAAADg/5C0BQAAAAAAAAAnQtIWAAAAAAAAAJwISVsAAAAAAAAAcCIkbQEAAAAAAADAiZC0BQAAAAAAAAAnQtIWAAAAAAAAAJwISVsAAAAAAAAAcCIkbQEAAAAAAADAiZC0BQAAAAD8pxw/flxff/31Xc+/dOmSPvjgA508eTLNsd9//11du3ZVUlLSXV9v+PDh+vHHH+96fkaJjo7WggULFBER8UCuHxISomvXrt3XNY4dO6bo6GhzPyUlRePHj9eJEycc5k2ePFlt27bVlStX0lzjo48+Uq9evZSQkHBfsaTn/PnzGj58uI4cOZLh1waAjETSFgAAAADwn7Jnzx69++67dz0/KipKw4YNSzdBeP78ec2bN09Wq/WurhUXF6exY8dq69atd/34qaxWq0qUKKEKFSrccvP09NQXX3yR7vmXL19W586dFR4ebo4tXLhQFovFYatWrdo9x5aUlKTXXntN5cuX1549eyRJOXPmlKurq6xWa5rNYrFo8eLFDtdISUlR69atFRwcrMOHD0uSTp06pU2bNql06dJq0aKFVq1apWbNmmncuHGqVauWvL2908SyfPlyXb58WZ6eng7jrVu31ksvveSwtWrVSk2aNNGyZcskSfv27UszZ+/eveY19u7dq9GjR+vixYv3/BwBwMN0d/8qAQAAAADwkMXGxuratWtyd3eXxWIxx5OTk2W1WhUZGekwPyUlRQkJCQoMDJSLy//VKHl4eEiScuTIYZ6flJQkDw8PWa1Wubi4yGKxyDAMJSQkyM3N7ZZJ3J9++kmS9MYbb9zz/WTLlk0vvPCCgoKCbjln7NixypYtW7rHUpOYNyYzPTw85O/vr3379kmSRo0apbCwsHuOzc3NTXv37tX48ePVsGFDHT58WB4eHvruu+/UokWLNPOLFCliPq+pXFxc9MMPP6h58+aqWrWq9u3bp1KlSunHH3/UqVOn1LhxYzVv3lwWi0UfffSRXnvttTTXOHnypPbs2aPevXsrNDRUhmEoMTFRRYsW1Y8//qjmzZurYsWKDuckJSUpX758kq5XVX/33XeaM2eOtm/frm+//VbTpk1TSEiI3N3dtWLFCpUqVUp58+bV0aNHJUmJiYlyc3PTE088cc/PGwA8KCRtAQAAAABOaeHCherZs+ctj/v7+6c7fvbsWQUGBiohIUEuLi4yDMM8lpCQoA0bNqhp06YO59yYFF69erWaNGli7pcqVUp//fWXw/wCBQrcNvYpU6aoX79+acZz5MihXLly3fI8V1fXNGNXrlxRQkKCYmNjJUnXrl3TuXPn5O7uLhcXF1mtVhUpUkSS5Ovre9dVwzfLli2b3n//ffXv318+Pj5yd3dXy5Ytbznfzc0tzVjBggW1ceNGLVq0SKVKlVJ8fLyWLl2q8ePHKyAgQHv27NGxY8f00Ucf6YMPPlCfPn00YMAAM6H+2WefyTAMvfbaaw7X3b9/v3x8fPTCCy+oQ4cOt4zJ3d1dktS1a1cdPXpUjRs31vHjx1W/fn25u7srLi5OPj4+DtXIdrtd5cuX/1fV0wDwoJC0BQAAAAA4pY4dO6pt27by9PR0SBCuWrVK7777rlkpmcputysuLs5MAH7wwQf68MMPzeNFixaVJMXHx8tms8nNzU2bN29W/fr1lZycbFbqpib+Unl4eOiNN95Q79697yrup59+Os1X+6XrFb6LFy+Wl5fXLc+NioqSzWZzGJs2bZpGjhxp7tepU0eSNGTIEFWuXNmhqlhyTEDfrVmzZun48eMaN26cfHx8zPHPPvtMDRo0SDO/Ro0at7xWjhw51KNHD/3111+qUaOGChYsqFGjRkm6nlBv3769XnnlFX311Vdat26d+VydPXtWn3zyiSZOnKgKFSqoYcOGioqKUmxsrAICAtJ9Tm92Y8J606ZNGjBggGrVqqWkpCStWLFC//vf/xQREXFX1wKAzETSFgAAAADglLJly5Zuq4DUJOXNFaVWq9Xh6/YDBgzQG2+8ocuXL+vJJ5/Uvn37lDt3bqWkpMjDwyNNctPFxUVeXl5m+4TURLG7u7ty5cqlxx9//K7iTu0DK11P1NpsNnl5eSk+Pv6u791ms8kwDHl6eqp///5666239Pnnn6t///7avXu3nnzySUnSjz/+mG517r2y2+2aNm2aduzYoSVLlqhAgQJKTk5Wnjx5zCreG1mtViUnJzuc36hRI5UvX17Dhw+Xr6+v3NzctHjxYgUFBSkxMVHPPPOM2rZta8Zes2ZNVa9eXaGhoSpZsqROnTqll156SX369NH27dslSd7e3g59b4cMGaKJEyc6xNK2bVsNGjTIYezSpUs6fPiwnn/+eXNszpw56tGjhxITE7Vw4UI1btxYjz322H0/dwDwIJC0BQAAAAA4tbi4OHl4eNxzcjJHjhzKkSOH7Ha7pOvtFPz8/NJd/OrmBO7YsWP13nvvpZlns9nSTb5arVZlz549zfj27dv13HPPyd3dXT4+PretspUkwzAUHR2t2NhYDR48WMOGDZOvr68kad26dWasqQuC2e32NJXB/8Ybb7yhkiVLqmXLllq2bJn69eunhISE27ZHuLEi2MXFRW3atNF7772nRYsWadWqVXrzzTd14MABubq6Kj4+XikpKfrmm2/0zTffmOfZ7XbFx8crNDRUwcHBCg4OTvdxUhP13bt31wsvvGAe69q1q6KiotKcs3XrVhUoUMCsGg4JCdHGjRs1f/58RUZGqlu3btqxYwdJWwBOi6QtAAAAAMCpFSpUSJcvX04zfmOi9aWXXtLSpUtve53Zs2frr7/+0pkzZ+Tp6elw/tatW9WiRQtdunRJCQkJt0yufvzxx+kmc4ODg7V79+404zVr1pTNZlNMTIzmzZt32/hSVa1aVU8//bTD2NmzZ/Xrr79Kkt5++21VqlRJkydPVkJCQoZ91f+5557Tli1bVK5cOUlSWFiYQz/gm92Y/LZYLOrWrZuaNWumDz/8UI8//rjZI/bMmTMqV66cRowYcdsWE/3799fs2bPNKl673W6+RnPmzJF0/XehQoUK5jnZs2dPN1nepEkTTZkyRVOmTNGrr76qDh06qFGjRoqJidGlS5ckSefOndPx48eVkJCg/PnzKyAg4C6fKQB48FzuPAUAAAAAgMxz6dIlHT9+XO7u7mYiMXX7+++/5ebmprfeeivdc/ft26fRo0dLklauXKmXX35ZOXLkkK+vr/z8/MwtNfHn5+ennDlzpluNK0leXl4qXLiwQwxdunRJt43Dja5du6a33npLbm5uKlKkiIoUKaLQ0FDNnj3b3C9SpIhmzpypX375Jc35s2bNUv78+SVJLVu21NSpU7V+/XpduHDhlguy/RtPPfWUWdHctm1bhYWFmc/R6dOn9dJLL8nFxUV+fn7p9s7Nmzevpk2bZj5/165dU6tWrXT58mX16dNHFovFYevWrZt5bps2bfTrr79q//79Gjp0qLy9vfX3339r27Ztt+2hmx6r1aoJEyZo+PDhunLliv755x99//33KlGihJkQ79Spk6pWrarg4GCtXr363z5lAPBAUGkLAAAAAHB6xYsX14svvqjBgwdr8eLF5vjQoUPVoEEDPfPMM2nO6dKliz7//HOVLl1akvTDDz+oSJEiKl68uMLCwtJ9nNRE5MaNG1W7du1bHr/b8VSpLQzGjx9v9sqNjo5WTEyM3nnnHXPeqVOn0vTqvXz5sqZOnaq3335bw4cPV40aNfTee+/pscce09q1azP0K/5//vmnXF1dVbJkSW3fvl0Wi0WGYchms8lms+mXX36Rt7e3Nm7cqLfeeks///yzcufObZ6/Y8cObdu2Tf3799eFCxfUqlUr7dy5U+3bt9fChQsdHqtFixYOFc3VqlUzfz5z5owCAgIUFBSkoKAgczwuLk6RkZHmfuoCcumpUqWKPDw8tHPnTu3Zs0c5c+ZUQECALl++rHz58mnDhg2qXLny/T5lAPBAkLQFAAAAAPwnjBs3TmXKlNHy5cv14osv6vvvv9fKlSu1f//+dOd36NBBDRs21DPPPKOCBQua45s3b9bZs2dVrFgxM9ma2h7h4sWLunbtmnLlypXuNe12u1JSUhwSh4mJibdMHKZKSEiQJL388stmknP37t3as2ePevToYc6bPn26wwJfkvTuu+8qW7Zsat++vYYPHy5J+vDDDyVJx48fV8WKFW/72Pdi0KBBcnd315IlS+Ti4qJKlSpJkvLnz681a9bIxcVFvXr10o8//qiePXuavWZTLVu2TIsXL1b16tXVtGlTFS9eXK+99pqWLFmiDRs2OMyNjIy8ZbuE3377TZcuXdL27dsdEvLdu3dX9+7dHebWrFkzzfl//vmn5s+frytXrih79uwqVqyYufjczQl2u91utsS4U/IdAB4WkrYAAAAAgP+EwoULa/r06erYsaP+/vtvjRo1Sp999plKlCiR7vw6depIul69eqNs2bKp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Hq9YseItPzTv1auXevTo4XBfOXPmlN1uv+vHAIBH1d016AOAWzh58qRq164tLy8vffPNN2YSyWq1atGiRapZs6YaNWrk8HXwm0VERJg9U2/cHnvssds+9ueff24m0d566y1t27ZNKSkpeu2113T06FGHLSQkRJLSVM1++eWXOn36tJnUTH2DmPp1/06dOmnhwoXmsfTaJdhsNj377LOy2Wx67733FB8fbz7OjT1xk5OTde3atTTn36qS98SJE2rbtq2aNGnisL3xxhsOb2wLFCigU6dO6fz587p69eptt9SFxh5//HHz/Pr162vfvn2aMmWKLBaLEhMTzTfvERERevXVVxUREaF58+ZpxYoVGjBggLp27WouiiVdX3Tq/fffN/eTk5MVFxenf/75RxcvXtT48ePNr6xPnjxZEyZM0NixY/X1119Lut6bNSEhQZGRkbLb7QoNDVWfPn309NNPOzwn8fHxKlGiRLrP11NPPaVNmzapXbt2aZKgt1rM6l6sWbNGkZGR5nbt2jUlJSXpjTfeSDPXZrMpNjZWsbGxZlJ90qRJmjVrllq3bq3t27ebcxMTE9ONLzw8XC1atNDevXvl6emp6tWrm6/j+PHjVbBgQV2+fFkXLlww+wWnGj58uK5cuWIuzLZhwwZduHDhjvd48x+Cf//9t9q0aaNXX31Vs2fP1o4dO9S/f3+NHDlSpUuX1sqVK7V48WLVrl1bf/zxh8O51atX14oVKzRs2DDNmzdPGzZsUMOGDWW329W0aVOzkulOChUqpMjISEVFRSk+Pl52u93s7TtlyhRt2rSJhC0A4F87ceKEqlevrvr16+uLL74w34dOmjRJmzdvNhf6TG21lSoiIkKrVq3S/v371aFDB3Xo0EFubm4KCgpSzZo1denSJQ0aNEgvv/yyLl26pN27d0ty/LfW1dVVM2bM0Pjx41W2bFk1b95cZ8+e1YcffqgxY8aoT58+slgs+uabb/Tdd9859PK/UZEiRW77ra5bOX36dJriiaJFi6b5BtCtxMTE6Pjx45o5c6Zy5Mghf39/dejQQefOnTPn7Nu3TxEREQoKClK2bNlUpUoVh78LChQooEKFCpn7KSkpWr9+vVkkcDePAQCPKpK2AP61TZs2qUqVKvL399e6descvhovXf/q2dKlS1WtWjW1aNFC69evT/c6qQm23bt3m0mpefPmpenReaNz585pwYIFatCggfLly6d3331Xn332mWw2m2bOnCk/Pz+HrUCBApL+r8I0JSVFM2fOVPfu3dWjRw/zzWJqgi21KjRv3rwqWbKkPvzwQy1YsMChelW6npxs166dJGn8+PH67rvvzFWALRaLTp8+rZ49e5pVodmzZ1dsbKzDNex2u2JiYhQaGurw9Xt/f3/9/PPPevLJJ1W5cmVVrlxZW7dudWhtkKpevXoqVqyYihcvftutWLFiqlatWprzH3vsMTVr1kySdOXKFUlSZGSkEhMTza/iu7m5aevWrdq7d68sFouSk5PN8//55x8dPnzY3Hdzc1PJkiV16dIlhYeH68SJE+YfKz/++KPCw8MVHh5uvuF2d3dPk2h1cXFR06ZNHcbi4+PTLMZ1o6CgILMtQWoy/NKlS+bv0t22urhfPXr0kI+Pj3x8fMxq6UKFCunJJ59UQkKCWX0spZ+0jY6OVvny5bVlyxaz1UNqewQ/Pz/zNQkICFDu3LnN329JWrlypaZOnSpPT0/Vq1dPHTp0MBeys9vtOnHihPz8/MzKcj8/vzRf90xMTNT48eNVsWJFFShQQEuWLFHlypXl6empwMBAjRo1SikpKerWrZuaNm2qsmXLKjg4WN9//73DdRo0aKBPP/1UXbt2lZ+fn2rUqCFXV1cNGDBAY8aMSfdDjHtxqwURAQC4G+Hh4erZs6fWr18vi8Widu3ame9Fe/furerVq5u9ZFevXu1wbr9+/ZScnKzmzZurUaNGWrRokeLi4u74mDd/QLpv3z517txZgwcP1pgxY7RlyxZNmzZNL774oooUKaK9e/dq+vTpatiwoU6dOpXuNVevXq233377nu8/Pj4+zTdlsmfProsXL97V+Xv37pVhGKpQoYKWLl2qjz/+WL/++qtDle7u3bvl6+urMWPG6Pvvv1eePHnUtGlTs/XRzb766iuFhYWZaxbczWMAwKOKpC2Ae5acnKw+ffqoXr16atCggTZs2HDLBKunp6e+//57Pf7442rZsqXOnDmTZk5qJaqPj4+ZlEpNfKbHMAx17dpV9erVM6tx33rrLc2dO1czZsyQzWZTZGSk2rdvrw4dOpiVkYZhOPT9/OWXX1S7dm1NnDjRHHvqqac0evRojRo1yuExz549K19fX7O3lnR9QYgWLVqYX9UPCAhQ69atFRYWplOnTuns2bN67LHH9NFHH+ns2bM6efKkjh8/blaxpoqJidHy5ctVokQJhyrSESNGKCAgQLVq1dKIESPUqVMnRUVFqXPnzuac1K+LHz16VDExMbp06dJtt5iYGJ06dUp2uz1N24fUhPGVK1fUqVMn+fv7a9myZZo9e7by58+v1157TR06dNBjjz2mOXPmaM6cOea5Hh4eDq0KIiIitHXrVnXq1Elz5szRzJkzVb58eXl7eysoKEiffvqpPvvss9v+gTFp0iS1b9/eIUl96tQphx7H6SWwGzVqZP4epL52qefc3C/1QZk+fbouXryoixcvplk0o3///vrpp5908OBBSdc/SLg5abty5UolJSWZvVul6/+/S/1dTq3mvnr1qi5fvmwufCZJFSpU0OzZs1W4cOE0cSUkJCgoKEiRkZH67LPPVKNGDUVGRjq0VpCu/04uWLBAX375paZMmaKYmBiVLVtW1atX13vvvaekpCRNnjxZefLkUUhIiBYuXKgxY8YoODg4zWO++uqr5sIjqT2Vu3fvruTkZBYMAwBkmqNHj6pChQoKDQ01PyBNbY/g5+dntkcICAhQnjx5HL4B9sknn+iHH36Qi4uLmjdvrg4dOshisZgfkG7evFl+fn768MMP9c0338jPzy/NGg8xMTF67733VLt2bXMRruDgYJUuXVrx8fGaMmWKkpKS9Nprr6lfv36yWq0qX768w7d1Uj355JMqWLDgPT8HHh4ead5vWywWxcfH39X5lSpV0r59+zR79mw1aNBAHTt21FdffaWtW7fq0KFDkq6/p9m8ebPatWunhg0b6vvvv1eBAgUc3kemOnfunN5++21169ZNpUuXvuvHAIBHFUlbAPfMarUqKChIc+fO1ZdffnnHnq2+vr5as2aN5s2bl+6iYqktCVIX0kpdTCu1RcHN4uPjdeHCBQ0YMMAcS03G3njOlStXHKoHUlJSFBMTI+l6FecXX3yhr7/+WqdOndLp06d17tw52e125c6dW3PnztW5c+fMbfDgwVqwYIFD79Ju3bpp+/btWr9+vdk2IUeOHCpatKjy58+vwMBAubi4yNfXV4GBgSpYsKCKFy+epqfXlStXNGLECBmG4ZCEdHNzU48ePTRhwgRJMt/M16hRw5wzfvx4eXh4pNte4nab1WpVkyZNzOucOnVKZcuW1eXLl5WYmCjDMFSrVq00ycRq1appx44dDn3G0lOgQAFzVeBU69at09ChQ/XDDz/cU4VlakVvcnKy9u/f79Da4eY+uQcPHtSuXbv0xBNPqEuXLnriiSe0f/9+FSpUSE2aNFH37t3N2G/XY/d+Zc+eXbly5VKuXLnSfJWxTp06Klq0qBYtWiRJiouLS7OI2Jw5c9SqVSv5+vqaYzt37lSRIkVUpEgRvf/++zp16pQKFy6swoULO/xeFi5cWK+//nq6ccXExOjs2bNq0qSJJk2apEOHDqlJkyZq3ry5wzwvLy/t2bPH/B3p3r27fvjhB02YMEGurq6qXr26XnzxRR06dMjs5ffmm28qV65cDhXY0vVFTjw9PZU7d2717t1b0vUPc95+++1/9QfmpUuX0jwGAAD3aunSpfL19VXRokXNscTERPO9qM1mU3Jysq5evapLly45tBmqXbu2Fi5cmGZhVknmIqWRkZEaMmSIXnnlFUVGRmrfvn0O886fP6/ly5dr3bp1GjRokM6dO6datWopKChIAwcOVM6cOTVjxgwlJibq5MmT+vHHHzVgwACVLVs2w56DPHnypKnevXz5cpoCg1vx9fV1eA8iXW+PJMls3VShQgWH4g6r1aoqVaqkae1kGIY6d+4sf39/h4KKu3kMAHhUsRAZgH+lf//+9zQ/f/78evnll9M9llr9WKVKFYfx1Oq8m3l5eemHH35Q7ty5NX/+fHN83LhxmjBhgtzd3WWxWHTlyhVVr15d3t7e8vLyktVqVbFixbR161ZJ1xegGDt2rD788ENJ/7eAlGEYSklJcfjKud1ul4eHh0N16hdffKEzZ86oVKlS9/Rc3MhutyssLExBQUHpHh84cKBKlSqld955R9OnT9eqVascjr/77rsaMGCAPDw8lJKSorNnz5oLob333nvaunWreb+JiYnmV/KSk5MdEtyrVq3S448/nubr5jdXX1SvXl2JiYlavXq1WrRoccv7unbtmnbv3q2goCAVKVJEP/zwg06ePKn//e9/2rJliyZNmqThw4ff1XOU+pX8VatWKSUlxexzW6lSpTQfAsyePVuVK1dWnTp1VKdOHXNBOn9/f9lsNr3wwgs6cuSI+XxkBovFohUrVph/dMXGxjokZ7dv364tW7Zo5MiRDufVqFFDmzZtknS9wmfixIkKDw+/7WM999xzDvtnz55VmTJltGbNGnMhsjVr1pgLkaVq2bLlbftQ3+4riWvXrlWjRo0kXU+ijxgxQsuWLVP+/PlVuXJltW7dWs2bN3eoWr8bcXFxmjJlisaPH68dO3akOycyMlIeHh5mxRQAAOlJSUnR559/ro4dOzqsV7Bs2TL9+OOPkq4nX5OTk1W4cGHZ7XaVLVtWu3btkiSVLVtWZcuWNRf7vFFMTIwOHjyoJk2aKDQ0VNeuXVOTJk3StE7Ily+fDhw4YP6blfrv/rlz5zR9+nQ1aNBAlStXVps2bcwP/N99913ZbDalpKSku87CvSpfvry2bt2qd9991xwLCQlJt8giPSdOnDBbOqW6fPmypOvP37Vr17R9+/Y070cuX76c5htfo0aN0saNG7Vt2zaHD7zv9BgA8Cij0hZAhrpTBWZ6ChYsaH6V/MYtNbmWnty5c6cZGz58uGJiYnT58mUNHTpUXbt21erVq1WuXDmtWbNGZ8+eNROYqYYOHWp+1Tw5OVnJycn69ttvlTdvXnM/dUt9g5jKx8fnvhK2knTo0CHZbDZVqFAh3eO+vr567733NGnSJNWqVSvNgkupvWDj4+PVsWNHValSJd2FGZKSklS3bl21bdtWf/31l6xWq0Ni6/vvv7+r3mDbtm1T06ZNNX36dHMsMjJSR48e1cGDB9W3b19J1yuOu3fvrmvXrunChQvq2bOnevfurYCAAA0fPlzjxo1L81rcSs+ePfXpp5/q3XffVdeuXbV27Vp16dJFo0aNMvsJS9KZM2e0YMECDRw40BybOHGinnvuOU2dOlUtW7bU6dOnVbp0aRmGcdveuPcrtZdveHh4mtYDklSuXDnzj62rV686JG2HDx+uEiVKqHbt2nf1WIZhKCkpKd0+ej///LMMw1CxYsWUlJRkruB8J8uXL1dcXJzsdrtZAZ66eXh4aOnSpWnG7Xa74uPjVb9+fUnX+xw3bdpU3bt3V+PGjVWhQgX16tVLb7/9drptLdKTkJCgpKQkjR8/XkFBQZo8ebLefffddFs/SNcXxMuXL5/CwsLu6voAgKxp8eLF+ueffxxaTkkyq2IjIyPVu3dv1ahRQ9HR0bp27ZqZsL1ZiRIlZLFYzPfAZ8+eVZ06dbRmzRp16NBB9erV05o1azR79myH8ypWrChvb29z0dqbF+INDg6WxWJxOO7q6iovLy/99ddfGfI8vPTSS/rpp5/MitXw8HCtXLnS/Lf8Tj777DN1797dYeyLL76QdP3bWREREWrYsKHDe/oTJ05oy5YtDmssfPPNNxo5cqSmTZumSpUq3dNjAMCjjEpbABkq9atk98LFxSXNQkg3s9vtslrT/icrJSXFTABdvnxZmzZt0syZM1WgQAHNnTtXVqtV8+bN0/PPP6/mzZurR48eKl26tJKSkvT777+bCzrd6MyZM7Lb7ekukJCQkCBvb2+H3rOSzKTV77//Lk9PT/OadrtdFy9eNPvFGoYhm82mxx9/XFarVcuXL1fu3LlVpkwZSdcToNL/9fndsWOHPvzwQ1WsWFG//vqrOnTooCFDhuiJJ54wr79kyRK9//77SkhI0FdffWUmI29MoFutVvXt21fDhg1TmTJl1LVrV40fP14+Pj6KiIjQL7/8oqlTp6Z5zm98nufPn6/NmzdryZIlatWqlVauXKnmzZsrOTlZc+fOVd68eZUjRw59+eWXqlu3rvLnz6+wsDDVq1dPuXPn1ogRIyRJVatW1f/+9z81a9ZMc+fO1Ysvvijp+kITx48fl8Vicfga3bFjx9SmTRvlzZtXY8aMUUxMjL755htVrlxZS5cuNStW33vvPeXMmVMtW7aUdL0dwy+//KJt27apTJkyqly5srp06WJW3958j7Gxsfrrr7/S9Hc7f/68JOnkyZPp/k4kJyfLy8vL/HplSkqKBgwY4NC+41ZtAJKSkhQaGmreb3R0tE6dOqU33njDoY2GYRjavHlzmtYaN+6XKlXKIb4b7+3555+XdL2CaOnSpWniuHmBtpvbNdwNFxcXs53G4cOH1aBBA1WtWlWTJk0y54wcOdLs+3djnOHh4em2Wdm4caPOnDmjjz76SG+//bb69OljLniYLVs2rVu3TpUrV5Z0/XX4/PPP5ePjc8vKdQAA7Ha7Ro0apXr16jm0RrgdwzCUnJwsu92epnXU8ePHVbx4cVmtVvMD0nr16t3xmiEhIXJ1dTXbXKU6d+6cHnvsMe3Zs8f8N+7G2BMTE9P8m3no0CH5+fndc9uhJk2aqHbt2qpbt66aNWum9evXK0+ePOrWrZs5Z+/evSpUqJDy5MmT5vzXX39d06dP18svv6yGDRvqwIED+uSTT9S6dWs9+eSTkqT69eurRYsWevPNN5WUlKQpU6bI29tb/fr1k3T9+evatatq1qypihUrau/eveb1K1eufFePAQCPLAMAMlCVKlWMjh073nHe008/fVfzlixZYrRs2dLw9PQ0Xn/99TTHX3nlFaNNmzZGQkKCUa5cOaNcuXLGqlWr0sw7ffq00axZMyMoKMg4f/68ce7cOcPd3d3w8fExcuTIcdebp6en0a5dO4drJyYmGpKMZcuWGVar1ciePfstz/fx8THc3d2Nc+fOGRcvXjT8/PyMXr16GYZhGG+//bYRFBRkuLq6Gj/99JPRqVMnw9XV1ejevbuRnJxsrFu3zsifP78hyahVq5aRkJBgJCUlGR06dDC6dOliREZGGoZhGJGRkUb16tWN7NmzG+3bt3eINSkpyRg/frzRvHlzw263m49bsmRJc866deuMLl26GB4eHsYXX3xhXL582fDx8TGyZctmLF++3DAMw+jcubPh5+dn/PHHH4ZhGMaBAweMlJQUh8fasGGD4eXlZTRo0MC4dOmSw7GEhASjTp06xksvvWTG0b59eyNv3rzGkCFDzHkjRowwPDw8jNdff92Ij493uMbQoUON7NmzGydOnDBiY2ONJ5980hg1apRhGIYRGhpqBAQEGG3atDHn//LLL4arq6uxd+9e48SJE0bHjh0NT09PY/LkyYZhGMbOnTvv+XfC19fX8PDwcPidyJ8/vzF//nxz/6uvvjLy5s3rEPu4ceOM3r17G5UqVTKsVqtx6tQph+fm5nt98803jaeffto4e/Zsmu3MmTNGRESE8c8//zicU7JkSWPjxo2GYVz/HW3SpIlRtWpVh7hq1aplnD9/3ujTp48hyQgPDzfuxGq1Gt9+++1t5yQlJRlTpkwxbDbbbefNnz/fsFgshiTjgw8+SHN8w4YNRo8ePYyrV6+mOfbBBx8Y2bJlMySZW86cOY2VK1fe8R4AAFnXiRMnjHz58hnff/+9w/iLL77o8G9KelvDhg0dzrFarcbx48cNwzCMNm3aGL/88ovh5uZmHDt2zDAMwxg9erT5fvfYsWOGpDT/xt/s7NmzhiRjz549d31PhQsXNt588827nn+jhIQEY8iQIcZTTz1ltGvXzjh58qTDcUnGlClTbnn+r7/+ajz11FOGh4eHUbx4cWPkyJFGYmKiefzSpUtGu3btDB8fH/O92V9//WUenzx58i2f77t9DAB4VJG0BZApHn/88btK2m7ZssVwc3MzypUrZ/z222+3nRsdHX3H68XGxt5tiHctJibGkJRusvh2kpOTjWXLlplv7BcvXmx0797d+OWXX4yVK1caefPmNb755huHc2JjY43Ro0cb06dPv+2133//fWPChAlGVFTUHeOYMWOGMXr0aHP/0KFDRsmSJY2OHTsa0dHRRkJCglGvXj1jx44d5pz4+HhjypQpZsI1PXa73ViyZEmaZG6q6OjoO74eFy9eNDZt2nTL44cPH3aIKTW5d/z4caNz585pkn0HDhwwDMMwUlJSjPr16xuDBg0yYmJibhvDvRo6dKixa9cuc//YsWPGnDlz0swpWLCg0aZNG2Pnzp13vGaPHj2MWrVq/euYUlJSjB9//NE4dOiQORYVFWX8888/RnJystGgQQNj2rRpd7xOcnKyIcn44osv/nUsN4qJiTHmzZvn8McbAAAPWlRUVJr3J82bNzfatGmT7gekp0+fNk6ePGmcPn3anJ+cnGx4e3sbYWFhhmFcf18THBzs8IFxatI2NDTUeOWVVwxXV9fbvncyDMM4deqUIcnhvQQAIGuyGMZdNpYDgExg/P9+mRmx2MJ/TUJCQpqv4AEAACDjPf/888qbN68WLFjwr85PXRehXr16Zquqy5cvKzExUV5eXmrWrJl69ux5y4V5U4WFhal48eLavHmzatas+a9iAQA8GkjaAgAAAAAAAIATyXqlawAAAAAAAADgxEjaZpDDhw8rODhY/v7+GjBggO5UwNypUydZLJY0W3h4uCTp008/Vd68eVW0aFH9+uuvD+EOAAAAAAAAADgDkrYZwGazqWnTpqpUqZL27t2rI0eO3LEX0owZM3T16lVz+/HHH1WiRAkVLFhQ69at0zvvvKPZs2dr4cKF6tq1qy5fvvxwbgYAAAAAAABApqKnbQb4/vvv9frrr+vUqVPy8vLSwYMH9cYbb2jr1q13fY0GDRqoU6dOeuWVV9SiRQsFBgZq1qxZkqS33npLZcqUUdeuXR/ULQAAAAAAAABwEtbMDuBRcPDgQVWrVk1eXl6SpHLlyunIkSN3ff6ePXt04sQJcyXRgwcP6pVXXjGPV6lSRb/99lu6SVubzSabzWbup6Sk6MqVK8qZM6csFsu/vSUAAACkwzAMxcTEKF++fHJx4UtrAAAAeDBI2maA6OhoBQUFmfsWi0Wurq66evWq/P3973j+9OnT1bNnT/ON/83X8/X11ZkzZ9I9d+zYsRo5cuR93gEAAADuRUREhAoUKJDZYTwwl2KTMzsEAPeh3NurMjsEAPfhzGcvZtpjZ3uqd4ZdK37/Jxl2rayIpG0GsFqt8vDwcBjz9PRUXFzcHZO2V65c0cqVKzV16tRbXi/1WukZNGiQ+vfvb+5HRUWpUKFCioiIkK+v77+5HQAAANxCdHS0ChYsKB8fn8wOBQAAAI8wkrYZICAgQIcPH3YYi4mJkbu7+x3PXb58uZ599lmH5G5AQIAuXrx4V9fy8PBIkzCWrlfnkrQFAAB4MGhDBQAAHkkW2j85C16JDBAcHKwdO3aY+ydOnJDNZlNAQMAdz12yZIlefNGx7P3m6+3fv1/58+fPuIABAAAAAACAm1ksGbfhvpC0zQA1a9ZUdHS05s+fL0kaM2aM6tevL1dXV0VGRsput6d7Xnx8vDZv3qzatWs7jL/00kuaMWOGTp8+rfPnz2vevHlq2LDhg74NAAAAAAAAAE6A9ggZwGq1au7cuWrXrp0GDBggFxcXbdq0SZLk7++v/fv3q0KFCmnO2759u/z9/VW0aFGH8aZNm2rp0qUqUaKEJKlevXppqnEBAAAAAACADEV7BKdB0jaDNGvWTGFhYQoJCVG1atWUM2dOSZJhGLc8p169ejp37lyacYvFoq+++kp9+/bVtWvXVKtWLfqmAQAAAAAA4MEi/+Q0SNpmoMDAQDVu3DjDrhccHJxh1wIAAAAAAADw30DSFgAAAAAAAADtEZwISVsAAAAAAAAAtEdwIqTPAQAAAAAAAMCJUGkLAAAAAAAAgPYIToSkLQAAAAAAAADaIzgR0ucAAAAAAAAA4ESotAUAAAAAAABAewQnQtIWAAAAAAAAAO0RnAjpcwAAAAAAAABwIlTaAgAAAAAAAKA9ghMhaQsAAAAAAACA9ghOhPQ5AAAAAAAAADgRKm0BAAAAAAAA0B7BifBKAAAAAAAAAIATodIWAAAAAAAAAJW2ToSkLQAAAAAAAADJhYXInAXpcwAAAAAAAABwIlTaAgAAAAAAAKA9ghMhaQsAAAAAAABAstAewVmQPgcAAAAAAAAAJ0KlLQAAAAAAAADaIzgRkrYAAAAAAAAAaI/gREifAwAAAAAAAIATodIWAAAAAAAAAO0RnAhJWwAAAAAAAAC0R3AipM8BAAAAAAAAwIlQaQsAAAAAAACA9ghOhKQtAAAAAAAAANojOBHS5wAAAAAAAADgRKi0BQAAAAAAAEB7BCdC0hYAAAAAAAAA7RGcCOlzAAAAAAAAAHAiVNoCAAAAAAAAoD2CEyFpCwAAAAAAAICkrRPhlQAAAAAAAAAAJ0KlLQAAAAAAAAAWInMiJG0BAAAAAAAA0B7BifBKAAAAAAAAAIATodIWAAAAAAAAAO0RnAiVtgAAAAAAAADgRKi0BQAAAAAAAEBPWydC0hYAAAAAAAAA7RGcCOlzAAAAAAAAAHAiVNoCAAAAAAAAkIVKW6dB0hYAAAAAAAAASVsnQnsEAAAAAAAAAHAiVNoCAAAAAAAAkCi0dRokbQEAAAAAAADQHsGJ0B4BAAAAAAAAAJwIlbYAAAAAAAAAqLR1IiRtAQAAAAAAAJC0dSK0RwAAAAAAAAAAJ0KlLQAAAAAAAAAqbZ0IlbYZ4PDhwwoODpa/v78GDBggwzDu6ryUlBQ988wzmjRpksN4uXLlZLFYzK1r164PImwAAAAAAADg/1gycMN9IWl7n2w2m5o2bapKlSpp7969OnLkiBYsWHBX586aNUtRUVHq27evORYXF6ewsDBduHBBV69e1dWrVzV9+vQHFD0AAAAAAAAAZ0N7hPu0du1aRUVFafLkyfLy8tKYMWP0xhtvqHPnzrc978yZMxo8eLCWL18uNzc3c3z//v0qV66ccufO/aBDBwAAAAAAAEy0R3AeVNrep4MHD6patWry8vKSdL21wZEjR+54Xr9+/VS4cGFFRERo+/bt5vju3bt16tQp5c6dW35+furZs6dsNtstr2Oz2RQdHe2wAQAAAAAAAPfqxnad97vh/pC0vU/R0dEKCgoy9y0Wi1xdXXX16tVbnrNjxw4tXbpUBQoUUFhYmDp27KjevXtLko4dO6YaNWpo69atWrdunX7++WdNmTLlltcaO3ascuTIYW4FCxbMuJsDAAAAAAAA8NCRtL1PVqtVHh4eDmOenp6Ki4u75Tlz5sxR1apVtWbNGo0aNUq//vqrZsyYoWPHjmnWrFlatGiRSpUqpapVq2r48OFatmzZLa81aNAgRUVFmVtERESG3RsAAAAAAACyjsystL106ZKCgoIUHh5ujh0+fFjBwcHy9/fXgAEDZBiGeWzz5s164oknlCtXLk2ePDkjbt+pkLS9TwEBAbp48aLDWExMjNzd3W95zqlTp/TCCy+Yv8AFCxZU7ty5FRYWlmZunjx5dPr06Vtey8PDQ76+vg4bAAAAAAAAcK8yK2l76dIlNWnSxCFha7PZ1LRpU1WqVEl79+7VkSNHtGDBAknSxYsX1axZM7Vr1047duzQ119/rY0bN2bgM5H5SNrep+DgYO3YscPcP3HihGw2mwICAm55ToECBRQfH2/ux8bG6sqVK8qfP7+efvpph2rZHTt2qHDhwg8meAAAAAAAACCTvfzyy3rllVccxtauXauoqChNnjxZxYoV05gxYzRv3jxJ0tdff618+fJp2LBhKlGihIYPH24ee1SQtL1PNWvWVHR0tObPny9JGjNmjOrXry9XV1dFRkbKbrenOaddu3aaM2eOfvnlF/3zzz/q1auXHn/8cZUrV05lypRR9+7dtWvXLn3xxReaNGmSevbs+bBvCwAAAAAAAFmNJQO3ezBnzhz17dvXYezgwYOqVq2avLy8JEnlypXTkSNHzGN16tQxK3qrVKmikJCQe71bp2bN7AD+66xWq+bOnat27dppwIABcnFx0aZNmyRJ/v7+2r9/vypUqOBwznPPPaePPvpIPXv2VEREhCpUqKBly5bJYrFo4sSJ6ty5s+rUqaM8efJowoQJ6tix48O/MQAAAAAAAGQp/6YX7a3YbDbZbDaHMQ8PjzRrQ0lSUFBQmrHo6GiHcYvFIldXV129elXR0dEqXbq0eczX11dnzpzJsNidAUnbDNCsWTOFhYUpJCRE1apVU86cOSXJoTnyzbp06aIuXbqkGffz89OKFSseWKwAAAAAAADAgzZ27FiNHDnSYez999/XiBEj7up8q9WaJsHr6empuLi4NMdSxx8lJG0zSGBgoBo3bpzZYQAAAAAAAAD/SkZW2g4aNEj9+/d3GEuvyvZWAgICdPjwYYexmJgYubu7KyAgQBcvXkwz/iihpy0AAAAAAACADOXh4SFfX1+H7V6StsHBwdqxY4e5f+LECdlsNgUEBKQ5tn//fuXPnz9D489sJG0BAAAAAAAAyGKxZNh2v2rWrKno6GjNnz9fkjRmzBjVr19frq6uatasmbZt26YNGzYoKSlJ48ePV8OGDe/7MZ0J7REAAAAAAAAASBnXHeG+Wa1WzZ07V+3atdOAAQPk4uKiTZs2SZJy5cqlKVOm6IUXXlD27Nnl5+enBQsWZGq8GY2kLQAAAAAAAIBMZxiGw36zZs0UFhamkJAQVatWTTlz5jSP9ejRQw0bNtTRo0f17LPPKnv27A873AeKpC0AAAAAAACADF2ILKMEBgaqcePG6R4LCgpSUFDQQ47o4SBpCwAAAAAAAMApk7ZZFQuRAQAAAAAAAIATodIWAAAAAAAAAJW2ToSkLQAAAAAAAACStk6E9ggAAAAAAAAA4ESotAUAAAAAAAAgUWjrNEjaAgAAAAAAAKA9ghOhPQIAAAAAAAAAOBEqbQEAAIBHWEpKiq5duyYfH5/MDgUAADg5Km2dB5W2AAAAwH/YsmXLFBoaKkn6+eefNXDgQIfjH3zwgZo0aZIZoQEAgP8Yi8WSYRvuD0lbAAAA4D9s2LBh2r17tyTJzc1Nnp6ekiS73a7hw4dr9uzZmjhxYmaGCAAAgHtE0hYAAAD4j0lKSjJ/dnV1laurqyTJxcVFp0+f1uTJk1WuXDlduHBBBw8eVHBwcGaFCgAA/kssGbjhvtDTFgAAAPiPefnll7Vx40b5+Pjo3Llz6tu3rwYNGqT4+HidP39eRYoU0aeffqrnn38+s0MFAAD/IbQ1cB5U2gIAAAD/MTNnztSJEyd05MgRFS9eXBMmTND+/fs1a9YstW7dWp06ddKAAQP07LPP6tixY5kdLgAAAO4RSVsAAADgPyZPnjz65JNPVKtWLZ06dUrr16/X77//Lk9PT5UqVUrDhw/X4cOH1bFjR9WuXVuHDh3K7JCRSbZs+lWtmzVUzSrl1LHdiwo/EZZmTv/e/9MPq1ZkQnQA7qTtM4X16/B6+nNKE83oEqwAb3e1ebqQznz2YpqtzdOFMjtcPAJYiMx5kLQFAAAA/oPat2+vSZMm6dNPP1WhQoU0cOBAXbp0SXa73ZzTtWtXTZ8+XW3atFFcXFwmRovMcCripD4cOUQ9er+l79f+qkKFimjc6OEOc9b9uEa7dmzLpAgB3M6zj+fW6LblNGLpIdUf9YuyZ3PTvJ7VtGJ3hB7vt9rcKg1cq8sxNu06fjmzQ8YjgKSt86CnLQAAAPAfNGjQILm5ucnV1VXJycmqUaOG2rdvr65du5pzypcvr5CQEEVFRcnDwyMTo0Vm+OfE3+rZ5y3Va9BIktTipbYa8GYv83h0VKQ++Xi8ChUOyqwQAdzGS9UKacmOk/rtzwuSpNHfHdLmEc/J28OqyLj/W5CyY+2iWnvgjP65dC2zQgXwAJC0BQAAAP6Ddu3apfnz50uSDMNQ7969NWLECC1dulTTp0+XYRjKnz+/du3apS5dumRytMgM1WvWdtg/+U+4Chb6v69PT58yQTVr15fNlvCQIwNwNwKye+jomWhzPyXFkCTZ////SpKH1UVd6xZT43GbHnZ4eERRIes8aI8AAAAA/Adlz55dtWrVUq1atVS7dm0dP35cZcuWVUBAgEqXLq0yZcpo9+7d2rhxY2aHCieQlJSoxQsXqEWrtpKkkD27FLJ7p3q9+XYmRwbgVg5FRKr+k4FKzaG1ebqw9p+4opiEZHNOyyoFtf/EVZ26TAsc4FFDpS0AAADwH3T58mXNmDHD3C9ZsqS2b9+uy5cvy83NTZK0evVqLVmyREOHDr3ldWw2m2w2m+NYkivtFB4xc2d9Ks9s2dS0RSvZbDZNGDNS7wwaLm9v78wODcAtzFp/XE+XyKX1Q+oqPsmuykVzqs/nexzmvFozSJPW/JlJEeKRRKGt0yBpCwAAAPwHdejQQWfOnJHValVycrJef/11rVmzRqNHj5anp6ckKSkpSX/99ZciIyPl5+eX7nXGjh2rkSNHOowNGDRM7w4enu58/PeE7N6p5UsXafaCb2R1c9O8T6fq8dJl9cyztTI7NAC3ER2fpJYTf1OR3N7q8VwJ5cjmphW7I8zjRXJ7q0ie7PrtyIVMjBKPGtojOA+StgAAAMB/0EcffZTueLt27cyfk5KS9Pnnn9+2anbQoEHq37+/w1hMkmvGBIlMd+b0Kb0/5F29PXCogooWlyT9/NMPirx6RQ1rVZMkJSTE69ef1+nPPw7pnUEk6wFncz4yQS88lU/vLtyvG9rZqmnlAtrw+1kl3zgI4JFB0hYAAAD4D/r777/15JNP6tq1tKuFJyYmyjAMeXh4qHv37re9joeHR5qkbmJs8i1m47/ElpCgAf166dladVSzTj3FxV3/Xfl0zhdKSUkx533y8QSVKVteLzRtkUmRArid1+sWU+j5WP108KzDeJ0yebVk+z+ZFBUeVVTaOg+StgAAAMB/kIeHh6zWtG/nbTabWrRooUKFCumzzz7LhMjgLHbv3K7wv8MU/neYVq1YZo4vW71ej+XLb+5ny+alHH5+8vP3z4wwAdxGDi839WxQQu2nbXcY93Rz0VNF/PXuV/syKTI8qsjZOg+StgAAAMB/kNVqlaurYxuDpKQktWjRQidOnNCcOXMyKTI4i2dr19W2kD/uOG/oyDEPIRoA/0ZUXJLKvv1DmvGEpBQF9V6ZCREBeFhI2gIAAACPiNdff11hYWHavHmzHnvsscwOBwAA/MfQHsF5kLQFAAAAHgHnzp3T0aNH9fPPP5OwBQAA/wo5W+dB0hYAAAD4j0pJSVFERIQM4/rK4d99950k6eTJk+YcwzCUkJCgUqVKZUqMAAAAuHckbQEAAID/qOjoaBUpUsRM2losFvPnG1ksFtnt9ocdHgAA+I+hPYLzIGkLAAAA/Ef5+fnp4sWLt52TkpIim832kCICAAD/ZeRsnQdJWwAAAOA/zNXV9Y7H3dzcHlI0AAAAyAgkbQEAAAAAAADIxYVSW2dB0hYAAAD4D7Lb7UpOTs7sMAAAwCOE9gjOwyWzAwAAAABw7xISEhQfH5/ZYQAAAOABoNIWAAAA+A8qXLiwwsPDMzsMAADwCLFQaus0SNoCAAAA/0Gurq7Knz9/ZocBAAAeIeRsnQftEQAAAAAAAADAiVBpCwAAAAAAAID2CE6EpC0AAAAAAAAAkrZOhPYIAAAAAAAAAOBEqLQFAAAAAAAAwEJkToSkLQAAAAAAAADaIzgR2iMAAAAAAAAAgBOh0hYAAAAAAAAA7RGcCJW2AAAAAAAAAOBEqLQFAAAAAAAAQE9bJ0LSFgAAAAAAAADtEZwI7REAAAAAAAAAwImQtM0ghw8fVnBwsPz9/TVgwAAZhnFX56WkpOiZZ57RpEmTHMaXLVumwoULK1++fFq0aNGDCBkAAAAAAAAwWSyWDNtwf0jaZgCbzaamTZuqUqVK2rt3r44cOaIFCxbc1bmzZs1SVFSU+vbta44dPnxY7du317Bhw7Ru3ToNHz5cx44de0DRAwAAAAAAANfbI2TUhvtD0jYDrF27VlFRUZo8ebKKFSumMWPGaN68eXc878yZMxo8eLCmT58uNzc3c3zu3LmqU6eOunbtqieffFK9e/fWV1999SBvAQAAAAAAAICTIGmbAQ4ePKhq1arJy8tLklSuXDkdOXLkjuf169dPhQsXVkREhLZv3+5wvbp165r7VapUUUhISMYHDgAAAAAAAPx/tEdwHiRtM0B0dLSCgoLMfYvFIldXV129evWW5+zYsUNLly5VgQIFFBYWpo4dO6p3797pXs/X11dnzpxJ9zo2m03R0dEOGwAAAAAAAHCvaI/gPKyZHcCjwGq1ysPDw2HM09NTcXFx8vf3T/ecOXPmqGrVqlqzZo0sFou6deumwoULq0+fPmmul3qt9IwdO1YjR47MuJsBAAAAAAAAkKmotM0AAQEBunjxosNYTEyM3N3db3nOqVOn9MILL5jl4gULFlTu3LkVFhaW5nq3u9agQYMUFRVlbhERERlwRwAAAAAAAMhqaI/gPEjaZoDg4GDt2LHD3D9x4oRsNpsCAgJueU6BAgUUHx9v7sfGxurKlSvKnz9/muvt379f+fPnT/c6Hh4e8vX1ddgAAAAAAACAe0V7BOdB0jYD1KxZU9HR0Zo/f74kacyYMapfv75cXV0VGRkpu92e5px27dppzpw5+uWXX/TPP/+oV69eevzxx1WuXDm1atVKixcv1qFDhxQbG6tp06apYcOGD/u2AAAAAAAAAGQCetpmAKvVqrlz56pdu3YaMGCAXFxctGnTJkmSv7+/9u/frwoVKjic89xzz+mjjz5Sz549FRERoQoVKmjZsmWyWCwqX7683nzzTVWuXFmenp4qUaKEevXq9fBvDAAAAAAAAFkGbQ2ch8UwDCOzg3hUnDt3TiEhIapWrZpy5sx539c7cuSITp8+rVq1at22P+6NoqOjlSNHDkVFRdEqAQAAIINllfdal2KTMzsEAPeh3NurMjsEAPfhzGcvZtpj15i4JcOutfWdZzPsWlkRlbYZKDAwUI0bN86w65UuXVqlS5fOsOsBAAAAAAAAcH4kbQEAAAAAAADQHsGJkLQFAAAAAAAAQNLWibhkdgAAAAAAAAAAgP9DpS0AAAAAAAAAUWjrPEjaAgAAAAAAAKA9ghOhPQIAAAAAAAAAOBEqbQEAAAAAAADQHsGJUGkLAAAAAAAAQBaLJcO2ezF37lwVLFhQXl5eql27tv7++29J0uHDhxUcHCx/f38NGDBAhmE8iNt2SiRtAQAAAAAAAGSKsLAwjRo1SitXrtTRo0dVrFgxderUSTabTU2bNlWlSpW0d+9eHTlyRAsWLMjscB8akrYAAAAAAAAAZLFk3Ha39u/fr2rVqqlixYoqVKiQXn/9dYWGhmrt2rWKiorS5MmTVaxYMY0ZM0bz5s17cDfvZOhpCwAAAAAAACBD2Ww22Ww2hzEPDw95eHg4jJUuXVq//vqrDhw4oKCgIM2YMUPPPfecDh48qGrVqsnLy0uSVK5cOR05cuShxZ/ZqLQFAAAAAAAAIBeLJcO2sWPHKkeOHA7b2LFj0zxm6dKl9dJLL+mpp56Sn5+fduzYoYkTJyo6OlpBQUHmPIvFIldXV129evVhPiWZhqQtAAAAAAAAgAxtjzBo0CBFRUU5bIMGDUrzmLt379bq1au1c+dORUZGql27dnrhhRdktVrTVOV6enoqLi7uYT0dmYqkLQAAAAAAAIAM5eHhIV9fX4ft5iSsJC1atEgvv/yyqlatqhw5cuiDDz5QWFiYAgICdPHiRYe5MTExcnd3f1i3kKnoaQsAAAAAAABAlntZQSyDpKSk6NKlS+Z+TEyM4uLiZLVatWPHDnP8xIkTstlsCggIeOgxZgYqbQEAAAAAAADIxZJx29169tlntXz5ck2ZMkXffPONWrRoocDAQPXt21fR0dGaP3++JGnMmDGqX7++XF1dH9DdOxcqbQEAAAAAAABkilatWunPP//Uxx9/rLNnz6ps2bJasWKF3NzcNHfuXLVr104DBgyQi4uLNm3alNnhPjQkbQEAAAAAAABkSnsEi8WiYcOGadiwYWmONWvWTGFhYQoJCVG1atWUM2fOhx5fZiFpCwAAAAAAAECZkLO9o8DAQDVu3Dizw3jo6GkLAAAAAAAAAE6ESlsAAAAAAAAAssgJS22zKJK2AAAAAAAAAORCztZp0B4BAAAAAAAAAJwIlbYAAAAAAAAAZHHGlciyKJK2AAAAAAAAAETO1nnQHgEAAAAAAAAAnAiVtgAAAAAAAADkQqmt0yBpCwAAAAAAAID2CE6E9ggAAAAAAAAA4ESotAUAAAAAAAAgC6W2ToOkLQAAAAAAAADaIzgR2iMATmbJkiUqUKCASpQooY0bN9527qJFi+Tj46PAwEAFBgaqd+/ekqSzZ8/Kw8PDHK9YsaJ5zoYNG9SkSRM1btxYa9eufaD3AgAAAAAAgHtHpS3gRE6ePKkuXbpo06ZNKliwoJ577jnt3LlT2bJlS3f+vn37NH36dHXq1CnNeLt27bRgwQKH8dDQUPXs2VNfffWV4uLi1Lp1a/3xxx8KDAx8QHcEAAAAAAD+K1wotXUaVNoCTmTVqlVq1KiRKlWqpDx58qhu3brasmXLLeeHhIQ4VNHeafzs2bOaPn26qlWrprp166pIkSL6559/MvQeAADA7SUmJqpPnz4OY2FhYWrbtm26cwEAAJD1kLQFnEhERISeeuopc79IkSI6fvx4unMNw9D+/fvVpk0b+fv7q1GjRjp79qyk65W2H3/8sXLmzKly5cpp27ZtkqRnn31WjRo1kt1u17JlyxQXF+fweAAA4MFzc3PTypUrHcb++OOPNAna5ORkZc+e/WGGBgAAsjhLBm64PyRtASdit9uVI0cOc9/b21tRUVHpzo2KilLr1q21adMmXbx4UUFBQRoyZIgkqVixYlq8eLEuX76sgQMHqmPHjjIMwzx3xIgRat++vXr27Cl3d/cHe1MAAMCBxWJRZGSkSpYsqa1bt0qSfvzxR7Vp00ZnzpzR6dOnJUlWq1Vubm6ZGSoAAMhiLBZLhm24PyRtASfi7++vyMhIcz8+Pl6urq7pzvXz89Ps2bMVGBgoq9Wq3r17a8OGDZKkSZMmqUqVKpKk9u3bKyoqSidOnDDPHT16tI4dO6axY8fqjz/+eHA3BAAAHMTFxWnu3Lny8vLS999/rxo1aigqKko///yzvvvuO61atUrFixdXp06dtHnzZj5cBQAAyKJI2gJOpFq1amYrA0nau3evChYsmO7c0NBQrV+/3tw/c+aMrFar4uLi9MUXX5jjCQkJunr1qqxWq0JCQhQWFibpeuuFKlWqkLQFAOAhCg8P18iRI5WQkGAmZCdPnqyePXvqp59+Uo8ePfTnn3+qbNmy6t69u+x2eyZHDAAAshIXS8ZtuD8kbQEnUqtWLR09elSffPKJFi9erLVr16pBgwbpzrXb7erRo4fCw8N1/vx5jRkzRi+++KI8PT01YsQI/frrr4qNjdXQoUNVoUIFFSpUSAcOHFDHjh117do1nTp1Srt27VKlSpUe8l0CAJB1lS5dWmFhYXr33XdVu3ZtrV69Wj/99JP69u2rbNmySbr+wWqfPn106NAhWa3WTI4YAABkJbRHcB4kbQEnYrVatXbtWq1du1ZTp07VokWLlCtXLgUHB+vgwYMOc0uVKqV33nlHlStX1lNPPaWyZctq1KhRcnFx0ZdffqkePXqoQIECOnbsmJYtWyZJ6ty5sypVqqSiRYuqTp06mjp1qooVK5YZtwoAQJZ16tQpRUdHa+XKlWrfvr1GjBhhVt3+9ttveuaZZ5QnTx4dOnQokyMFAABAZrEYN65OlIWsX79eDRo0kGEYZvb/xIkTKlCggJKSklS7dm3t3r07k6O8d9HR0cqRI4eioqLk6+ub2eEAAAA8UjLivdbhw4fVrVs3bdiwQbNmzdKMGTO0f/9+BQUFKSQkROHh4apevbrc3NwUEBCgK1euZPBd3Nml2OSH/pgAMk65t1dldggA7sOZz17MtMd+9euDd550l75qXz7DrpUVZdlK206dOmn//v2qWbOmkpKSZLfb1apVK61YsUIeHh6y2WyZHSIAAAAeQTExMTpy5Ijy58+vzp07q1GjRnr77bd17do1FSlSRDVr1tQPP/ygY8eOZXaoAAAgi6E9gvPIsknbnDlzqmzZssqXL5/atm2refPmqVSpUmrTpo1cXV3l6uqa2SECAADgEbNp0yY1adJEhQsX1okTJxQQEKAPP/xQy5Yt05AhQ5SUlKSyZctq/vz5iomJyexwAQAAkEmybNI2W7ZscnNz09dff63XX39d7dq1U9OmTTVu3DhJUhbtGgEAAIAHqEaNGhozZoxOnz6tWbNmSZL8/PzUrVs3RUREyM3NTb/++qtWrlypypUry263Z3LEAAAgK3GxZNyG+5Nlk7ap+vTpo4oVK2rNmjXq2LEjfWABAADwwFitVnXv3l3bt2/XJ598om+//VaS1Lx5c33zzTeKjY1VYGCgJCklJUVxcXGZGS4AAMhiaI/gPLJk0jYkJEQ2m00pKSny9fVVkyZNVLp0ab311lsqWrSo/v77byUlJenEiRP6888/MztcAAAAPGJKlSqlJUuWqF69epKkatWqafDgwfLw8DDnuLi4KCEhIbNCBAAAQCayZnYAD9sff/yhGjVqqGDBgvrggw/03nvvKSEhQW+++abatGmjl156SW5uboqNjVXFihWVmJioa9euZXbYAAAAeMRUr17d/NnV1VWDBw82969duyZvb2/WWQAAAA8V9bHOI8tV2pYuXVpnz56Vp6en/vjjD9WuXVvnzp1TnTp1NGXKFE2aNElXr15V2bJldfXqVRK2AAAAyFApKSn67bffzJ8LFixoHktISNDQoUNVqFAhnT17NrNCBAAAWZSLxZJhG+5PlkvaWiwW+fn5ydPTU99++62mT5+udevWqXTp0qpXr5527NiR2SECAADgEZaSkmK2RXBxcVFUVJQkaefOnSpbtqxWrFihTz75RHnz5s3MMAEAAJCJslx7hFSGYUi63k9swYIFKlOmjK5evaqOHTtKEg2TAQAA8EBYrVZ5eno67EtSzpw51a1bN73zzju0RQAAAJmCdJjzyLJJ26ioKMXExKhh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EREREREREZF/SmUNEg8lvuOAu7s7J06cMD++e/cuJpOJtGnT/uk+5cqVizUr9sSJE+TMmfOdx/Px8SFbtmzxELmIiIiIiIiIiIgkNkraxoFKlSoREBDAkiVLAPDy8qJ69erY2Njg7+9PVFTUW/sUKlSIHj16cOrUKZYtW8Y333xDr169AGjWrBk//vgjly5dIigoiFmzZlGrVq0EHZOIiEhysm7dOrJnz07evHk5cODA39onNDSUfPnyce/ePQBy5cpF5syZzYudnR2HDx/m+fPnNG7cmA8++IASJUpw/PjxeByJiIiIiMi/ZxWHi/w3Ko8QB2xtbVm4cCGtW7dmyJAhWFtbc/DgQQDSpEmDj48PxYoVi7XPtGnT6NSpE1WqVCFjxoxMnTqVDh06AFC0aFH69etHqVKlcHR0JG/evPTu3TuBRyUiIpI83L9/ny5dunDw4EFy5MhBjRo1OHnyJClSpPjL/caMGcPNmzfNj98kbwEePnzIJ598QpkyZWjdujVFixZly5YtHDp0iHr16vHbb7/h4uISX0MSEREREflXVB0h8VDSNo40bNiQ27dvc/bsWcqWLUu6dOkAMAzjndu7urqyefPmPz3exIkTadu2LY8ePaJy5cr/qD6uiIiI/H3btm2jdu3alCxZEoCqVaty5MgRatas+af7eHt7s337dkqXLv3O5ydNmsSQIUOws7Nj586dLF68GIDKlSvj6urKlStXKFeuXNwPRkREREREkgSVR4hDmTNnpl69euaE7X9VsGBBatSooYStiIhIPHrw4AHFixc3P86VK1esGbR/FBERQdeuXVmwYME7Z+P6+vqyY8cOOnbsiLW1NdbW1rx8+RKAly9f8uTJE9WqFxEREZFEyRqrOFvkv9FMWxEREUnWoqKiSJ06tflxypQpef78+Z9uP2nSJKpUqUKFChXe+fyiRYto27YtDg4OALRr144mTZrQrl07Vq9eTcmSJfnggw/idhAiIiIiInFA5RESD820FYuJz6YvUVFRuLi4xHruXQ3hRERE0qRJg7+/v/lxaGgoNjY279z2ypUrrFu3Di8vrz893rJly2jfvr358dy5cxkwYAAPHjzgwoULjBgxIs5iFxERERGRpElJW7GIN01ftm7dyrFjx+jfvz+hoaH/c793NX15+vQpT58+xdvbm5w5c1KmTBmuX79OiRIlzM89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/vTp05w+fRpXV1cyZszIyJEj/1G5BRERERERERERkX/KKg4X+W+UtI0DAQEBuLm5mR9bWVlhY2ODn5/fX+7n5eVFvnz5aNmyZaz1v/76Kw0aNMDHx4fVq1czf/581q5d+85jmEwmAgICYi0iIiIiIiIiIiL/mLK2iYatpQNICmxtbd8qX+Do6EhISAhp0qR55z7Xrl1j/vz5+Pj4vPXcrl27zH93c3Pjiy++YMOGDbRq1eqtbSdNmsRXX331H0cgIiIiIiIiIiIiiYVm2saBtGnT8uLFi1jrAgMDsbe3f+f2hmHQvXt3JkyYQNasWf/n8TNmzMijR4/e+ZynpyevX782Lw8ePPjnAxARERERERERkWTPKg7/yH+jpG0ccHd358SJE+bHd+/exWQykTZt2nduf//+fY4ePcqQIUPMjcbu379PkSJFWLVqFR9//DGhoaHm7U+cOEHOnDnfeSwHBwdcXFxiLSIiIiIiIiIiIv+UlVXcLfLfKGkbBypVqkRAQABLliwBYmrVVq9eHRsbG/z9/YmKioq1fbZs2bh79y7nz583L1mzZuWnn36iUaNGZMqUid69e+Pt7c2MGTNYvXo1vXr1ssTQREREREREREREJIGppm0csLW1ZeHChbRu3ZohQ4ZgbW3NwYMHAUiTJg0+Pj4UK1Ys1va5cuV66xjZs2fH2dmZxYsX07FjRypUqECuXLn48ccfqVy5csINSEREREREREREkh1NkE08lLSNIw0bNuT27ducPXuWsmXLki5dOiCmfu3fce/ePfPfP/jgA/bv3x8fYYqIiIiIiIiIiLybsraJhpK2cShz5szUq1fP0mGIiIiIiIiIiIjIe0xJWxEREREREREREcFKU20TDSVtRUREREREREREBCvlbBMNa0sHICIiIiIiIiIiIiL/RzNtRURERERERERERMUREhElbUVERERERERERERZ20RE5RFEREREREREREREEhHNtBURERERERERERGsNNU20VDSVkRERERERERERLBSzjbRUHkEERERERERERERkUREM21FRERERERERERExRESESVtRURERERERERERFnbRETlEUREREREREREREQSEc20FREREREREREREaw01TbR0ExbERERERERERERkUREM21FREREREREREQEK020TTSUtBUREREREREREREVR0hEVB5BREREREREREREJBHRTFsRERERERERERFReYRERElbERERERERERERQQUSEg+VRxARERERERERERFJRDTTVkRERERERERERFQeIRFR0lZERERERERERERUHCERUXkEERERERERERERkUREM21FRERERERERERE5RESESVtRUREREREREREBCsVSEg0VB5BREREREREREREJBHRTFsRERERERERERFRJ7JERElbERERERERERERUc42EVF5BBEREREREREREZFERDNtRUREREREREREBCtNtU00lLQVERERERERERERrFQgIdFQeQQRERERERERERGRREQzbUVERERERERERESdyBIRJW1FREREREREREREOdtEROURRERERERERERERBIRzbQVERERERERERERrDTVNtHQTFsRERERERERERGRREQzbUVERERERERERAQrVbVNNJS0FREREREREREREZVHSERUHkFEREREREREREQkEVHSVkRERERERERERCQRUXkEERERERERERERUXmEREQzbUVEREREREREREQSEc20FREREREREREREazQVNvEQklbERERERERERERUXmERETlEUREREREREREREQSESVtRUREREREREREBKs4XP6JrVu3kjt3bmxtbSlWrBjXrl0D4PLly7i7u5MmTRqGDBmCYRj/dYjvDSVtRURERERERERExCJZ29u3b9OpUycmT57Mo0ePyJcvH127dsVkMtGgQQNKliyJt7c3V69eZenSpXE00MRPSVsRERERERERERGxiGvXrjF58mRatGhBpkyZ6NWrFz4+PuzatYvXr18zffp08uTJg5eXF4sWLbJ0uAlGjchEREREREREREQEq39c2ODPmUwmTCZTrHUODg44ODjEWle/fv1Yj2/cuEHevHm5cOECZcuWxcnJCYAiRYpw9erVOIsvsdNMWxEREREREREREcHKKu6WSZMmkTp16ljLpEmT/vLfDw8P55tvvqFnz54EBATg5ub2u9issLGxwc/PL75PQ6KgpK2IiIiIiIiIiIjEKU9PT16/fh1r8fT0/Mt9xowZQ8qUKenatSu2trZvzcp1dHQkJCQkPsNONFQeQUREREREREREROKwOMK7SyH8lf379zNnzhxOnjyJnZ0dadOm5fLly7G2CQwMxN7ePg6jTLw001ZERERERERE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Xbt2me1TwzCUnZ2tXr16mdukp6fL09PT7t74+Pho+vTpKlu2rMaNG2cuv9pWlSRPT898r3H48OE6d+6c2WFh3rx5On369HX/+H89X375peLj4xUSEnJL+wFwHEJbACgie/fuVePGjbVw4UL169dPkrR06VI9/PDD2rJli1q1aiVJOnjwoIYOHar//e9/Cg4O1ltvvaXu3btLkiIjIzVhwgTzmJUqVVLHjh01ZcoU+fv7F/9F/QWjR49WSEiIgoODVaZMGXP566+/rv/85z/m/JIlS/T6669LkqpXr67ExERz3a+//qp//vOf6tixo9544w1t3LhRnTt3loeHh1xcXJSZmalLly7J19dX0pUg1M3NTcnJyeYx9u3bp6ioKJUvX17ly5eXn5+fEhIStGvXLk2cOFGVKlVSxYoVzela/fr1M+/lVW+88YbWrVunTZs2SZIqVqyozz//XO3bt7/h5+Hh4aGcnBxzfu/evWrZsqWOHz9ufj7Xa7wDAIDSIzQ0VHfddZe++OILdezYUWXKlFHv3r31+eefa+DAgapVq5bGjRsni8WipKQkHTlyRPfdd5/c3Ny0cuVKrV+/XtnZ2frtt9+0e/duHTp0SJcvX9bjjz+ulJSUPL1ULRaL+Ufyq6xWqyZPnqyePXvetN6lS5fqzTfftFtWr149denSRW+//bYZ0Lq5uem9995Tampqnj+wnz9/XomJibLZbJKkjh07asOGDbJarcrNzdXDDz+sBg0aqGnTprp48aKsVqsOHz6s22+/XefOnVP58uWVnZ1t7i9J9913n+rUqaM2bdroxx9/1IABA+Tj4yMfHx9JUnx8vAYMGKCJEycqJSVFQUFB8vDwyBMoW61Wc5/w8HD973//M9ctXLhQUVFRslgsio2NVePGjeXl5WUX2jZs2FAnT55U2bJlzeA2Oztbnp6eeuedd/TOO++Y216+fFkZGRn617/+pcjIyDyf9cGDB7VkyRLNmjXLXBYZGalGjRpp4cKF6t+/f559kpOTdfr0abtOBikpKfrmm280ZswYnTx5Ms8+OTk5unz5sqpXr252RADgeIS2AFBEGjVqpC5duujdd981g753331X99xzjxnYpqWl6f7771ezZs20atUqffHFF+rVq5cOHDigmjVrSpLKlULrfQUAAIP7SURBVCunjRs3SpKSkpI0evRoDRo0SEuW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pdOdd96puXPnKjIyUvv27TOXr1u3TqNHj5YkPf/883r++eft9nvvvfc0YsQI7d69W5GRkerRo4fZPlyyZIlCQkJ05MgR1a1b1+5FZHv27FGHDh10+vRpu7bXtW51+R9dvHjRDIbPnj2rZ555xu6lWFe3udY777yj9957T7/88ovuuOMOGYahHj165Kn/0qVLql27dr7nvf/++7V27VrFxcXlWVfQwHnFihWSpJ9++sl8Eu7a8WErVaqk9u3ba+PGjSpfvrxiYmKUmZmZ54/0R48e1csvv6xFixapS5cuevDBBzVq1CiNHz9eDRo00LRp03T8+HHNnTtXn376qW6//XZz3xdffFFpaWlavHix2rRpc8N6y5QpY37Gd911l926Dz74QFFRUZKkFi1a2K179tln9eyzz5rzISEhSkhIKNBnBKD40NMWAIrYyZMn9csvv+jYsWM6evSo3bqsrCyzATx27Fiz98O1LwAoV66coqOjtWvXLs2fP1+ZmZl68sknJV1pEH7yySeaMmWKnnzySXXp0kVLlizRwYMHzXHQJkyYoNatW+vDDz/Ufffdpw8//FCtW7fWhAkTzHMkJCSoQ4cOuvfee9W7d2+tWLFCHTt2lCRVrlxZzZo1U926dSVdGVe3WbNmeV56cCMPPvigRowYYc6np6dr1KhR+ve//63Tp0/nGZYgIyNDKSkpOnbsmC5cuCDpSs+HHj16yM3NzS4g9fT0tBtTzNXVVadPn9apU6eUkJCgmTNn5qnH1dVV7733nry9veXt7a3nn39ep06dMue9vb11/PjxPL+cZGRkqEyZMnY9TzIyMvTQQw9p8ODBys3NzfPoYkJCgn7//Xf9/vvvMgxDn3/+uVq2bGl33Jdfflkff/yx9u7dqwMHDujYsWOSpF9++UVxcXHavXt3iRoOAwAA3Lqr7Y7FixerW7duuueeexQXFyebzWa2K/r166fatWtryJAhkqTbbrtN7du3l7u7u3744QdJ0po1a7R161a5uroqJydHFSpUMKerf1h2d3fPM8b/Vdd7ouhGTxpdrU+68lRR1apV5enpqeDgYLNNduTIEXOaPHmy3f6enp7meLlXlSlTRg888IDdskuXLqlixYrXraNp06bq2rWrpP97odu5c+fk6+trtyw/2dnZ+vjjj+Xr66sBAwZoxYoVyszM1IIFC8zra9eunT788EN5eHgoIiJCH374of773/+anRkyMzP15ptv6s4771TVqlX1xRdfqFmzZvL09FTFihX1+uuvKzc3V0899ZS6du2qhg0bqnnz5nYdDObMmaMtW7aoVatWysjIUE5Ojlq2bKmhQ4fatTFff/11Va1aVWXLltX8+fPNp9MkadKkSRo+fLieeuop8zPIyspSVlaWqlSpok8//dScnzFjxk3HHwbgGIS2AFDE3nrrLdWoUUNNmzbN87bWcuXKmY+QjRw5UtHR0Xr66afttnF1dVXjxo1155136oknntDMmTO1cuVKbd68Wbt27ZJhGLr33nvN7WvVqqXq1aubPWJ37txpt16SOnToYK6XpOHDh+vNN99Ux44dNX78eEm67lts/6xDhw4pKipKL730ki5cuKC0tDR169ZNPXv2VM2aNRUaGmpOq1at0rvvvqtatWrp5ZdfliQNHTpUbdu21f333293XBcXlzzhasWKFVWpUiWFhITYvZjhqpycHD399NNKSkpSUlKSoqKiVLFiRXM+KSlJPj4+eRr2DRo0MEPjq5OXl5dWrlypOXPm5PsIoouLi8qVK6eXX35ZLi4u6tixY57e1ZIUGxur8PBwhYeHm0NPtGvXTuHh4WrRooVOnz79Vz5+AABQQuzevVs9e/bUkiVL1L9/f7Vs2VLHjh3Te++9p8WLF2vu3LlmyBYcHKxly5Zpzpw5evPNNyVJs2bN0sSJE2UYhlxdXXXu3Dlz+uMQDPm5fPmyfvjhB7v2THx8vPmCsfzYbDbzD8w7duwolHbkZ599pnvvvdcuLD5x4oRd2+6PQXJ2drYaN26sZcuWmfWePn3a3OdG1zBr1izZbDa1adNG1atX15EjR8wgecWKFZo7d65Zw6FDh7RixYo8Q5pdvHhR8+fP1yeffKJp06bp4sWLatiwoVq3bq2xY8cqKytLU6dOVWBgoHbt2qWFCxdq4sSJat68uXkMDw8PVa9eXRaLxeyYcODAAfMps6tOnjyZ71NaY8aMUUREhN58800999xzkq78PuHm5mYOK+Hi4mLOX/0agPPhXyYAFKGzZ89q9uzZeuedd+Tr66v+/ftr/PjxqlatmqQrAWt8fLykK49bVapUyXwU63quPhKWlJR03R4S0v81YgvSWyIqKkqPPvqoNmzYoPXr1+v11183H7srDBs3btS9996runXrqlmzZsrN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d5tfe3h45BsaS1JERIRGjRplzqelpdmdEwAAAAAAAEDJ4tShbXBwsBITE8359PR0hYeHa926dapYsWK++1SrVk0JCQnmvM1m06lTp1S9enVlZGQoOztba9euVXZ2tsaPH6+BAwdq3759qlq1qrp27aopU6ZIknJycpSRkXHTGqtVq6ajR4+a80ePHlWZMmV02223SZJd/UlJSWbdVatW1dNPP60XXnhBkpSVlWUO4SBJPj4+Nz23JFmtVlmt1gJtCwAAAAAAAMD5OfWYtp07d9aFCxcUFRWlEydO6I033lBOTo6CgoKuu0+XLl108eJFTZgwQceOHdNzzz2n2rVrq3nz5srOztaDDz6oTz/9VL/99psMwzCHR+jTp49++uknHT58WFarVdOnT9egQYNuWuPgwYP16aefasmSJTp06JBGjRqlp59+WhaLRZK0ZMkSrVy5Uvv27dOMGTP0yCOPSJIGDBigpUuX6tdff5Wbm5teffVVvfrqq4XwqQEAAAAAAAAoyZw6tPX19dXq1au1bNky1a9fX9u3b9e3335rBqL5KVeunL7//nutWbNGd9xxh44fP66lS5fKxcVFPj4+Wrhwod544w3VrFlTy5cv14cffijpyrAGn3zyiUaNGqVatWpp37591x1H9lrNmjXTxx9/rJdfflmtW7dW06ZNzbFoJalXr156+eWX1a5dO3Xu3FlPP/20JKlt27aaMGGC/vGPf6h+/frKzMzUzJkz/+InBgAAgJIgMzNTQ4cOveE206dPV3x8fDFVBAAAAGdiMa43WCr+soEDByokJESRkZHFds60tDT5+voq+Pkv5GL1KrbzAgDwd5U4qbOjS0AxutrWSk1NLfBwVvkxDENeXl66//77VblyZdWpU0etWrVSs2bN5Obmpq1bt+qBBx7Q+vXr1aJFi0K8gpsrrGsE/u6+jE91dAl/K71q+hbKcZztvhXWdRWmwvqMnPHagOJQ0LaWU49pCwAAAJRGFotF/v7+Gj58uE6dOqWjR49q7Nix+uWXX/T444/rk08+0axZs4o9sAUAAIBzILQtQvPnz3d0CQAAAHAi8+bNU3BwsNq2bStPT0917NjRXLdnzx6NHj1aH374oZo2baq+ffs6sFIAgDMozJ6/9GwFShanHtMWAAAAKE127typ559/Xr6+vjp37pz+9a9/qV+/fqpZs6aGDx+u3r1769y5c6pRo4ZGjRrl6HIBAADgIPS0BQAAAIrJjBkzJEn79u3TggULtG3bNm3atEljx47Vv//9b3O7mTNnqlGjRnrsscfUsmVLR5ULAAAAByG0BQAAAIrJ6NGjlZqaqrp16yo5OVkLFy7Uyy+/rJCQEHXp0kVPPPGEunbtqrZt2+q1117TyZMnHV0yAAAAHIDhEQAAAIBiMnHiRLVr107p6elyc3NT//791aVLFz355JPatm2bPv30U4WGhqp+/foaMGCAHn30UUeXDAAAAAegp20pFTPhQfn4+Di6DAAAAFyjT58+slqtOn36tE6fPq369evr22+/VXh4uHx9fbVkyRL169dPGzZs0LFjx1S9enVHlwwAAAAHoKctAAAAUEx69uyp7t27q1WrVjpy5Ijc3Nz08MMPq23btkpOTtZPP/2kgwcP6v3339ewYcMcXS4AAAAchNAWAAAAKCatW7fW1KlT5ePjo+7du+v48ePy9PRUXFycJOnVV19VQECAevbsqUuXLmnXrl0OrhgAAACOwPAIAAAAQDFZv369xo4dK8MwdOjQIU2fPl1t27bVzz//LE9PT/344486deqUJKlfv37avHmzmjZt6uCqAQAAUNwIbQEAAIBi8tRTT0mSMjMz1alTJ5UtW1bfffedKlSooK+//lqSVLlyZUlXeuXWr1/fYbUCAADAcQhtAQAAgGJgs9nUpEkTxcXFycPDQ1FRUTpw4IBcXP5vxLJ33nlHI0aMkKenp+6//35t375d9erVc2DVAAAAcARC21Kq4fjv5WL1cnQZAACUaImTOju6BJQiVqtVFovFnI+OjtY//vGPPNsFBASoe/fumj17NoEtAADA3xQvIgMAAACKSU5Oji5duiRJ8vDw0COPPKKYmBglJCTo999/V8WKFVWlShWNHz9evXr1cnC1AAAAcBR62gIAAADFJDExUaGhoZKuhLaSdPr0aWVlZWnfvn2aNWuWjh49qnfffdeRZQIAAMDBCG0BAACAYlKzZk3FxsbKZrPp4Ycf1hdffKF7771XkmQYhiwWiypUqKChQ4cqOztbffv2dXDFAAAAcARCWwAAAKAYZGVlKScnR9KV8W1btGihJUuWyNXVVRaLRbm5ubLZbJowYYKWLl2qdu3aqW3btgoODnZw5QAAAChujGkLAAAAFAM3Nzd98sknysrK0gcffKDIyEhJ0scff6xGjRqpW7duWrx4sRo0aKD69etr4MCBcnd3d2zRAAAAcAh62gIAAADFwGKx6K677lJmZqamT5+uYcOGac+ePXJxcVHVqlX14YcfauLEifr2228VGhqqt956y9ElA39LX8anOroE/AncNwCljVP3tE1MTJTFYnF0GUVm06ZNCgkJcXQZAAAAKCajR4/W+PHjdf78eb3yyitKTk7WvHnztHv3brVo0UI2m03NmjXTvn37HF0qAAAAHMipQ9vSICQkRJs2bcp3XZs2bWiQAwAA/I34+/srICBAL730ksqXLy9XV1f5+PgoKChIFStW1NChQ/XPf/5TPXr0UEpKiqPLBQAAgIMQ2jqQm5ubfHx8HF0GAAAAismzzz6r1NRUpaenKz09XTk5OerUqZNWrlypoKAgPfvss3rrrbd055136t///rejywUAAICDFHlo+9lnn6lNmzbmfEpKijw9PXX27FnFxMSoTZs28vX11UMPPaQTJ07c9Hj5DSlgsViUmJio9u3ba9CgQbrtttvUt29fDRo0SN7e3lq2bJkk6eeff1aLFi3k6+urnj17KjW1YGPetG/fXvPnz9fUqVNVvXp1rVy50ly3dOlS1a1bV2XLltV9992nU6dOSZI6duwoi8WiY8eO6Z577pHFYtGkSZNuei2S9OOPP6px48by9/dX37596WUBAABQSlgsFrm7u8vd3V1Wq1XZ2dlyd3fXU089pY8//lgjRoyQJI0dO1Zff/21DMNwcMUAAABwhCIPbbt06aLo6GgzeFy7dq1atWqlMmXK6IEHHtD999+vffv2KTg4WN27d1dubu5fOl9CQoLmz5+vRYsWqWnTpnr00Ue1fPlypaSkqFOnTurUqZP27duntLQ0jR49usDHnTVrltauXatZs2apRYsWkqTk5GT17t1bEREROnLkiAIDA/XGG29Ikr7++mslJycrODhYy5cvV3Jysl544YWbnicpKUkPPfSQnnnmGe3atUvp6ekaOHDgdbe32WxKS0uzmwAAAOCcfH19NX78eL3yyitmMOvu7q7evXtr1apVmjZtmiSpadOmWr58eal+vwMAAACuz62oT+Dj46N77rlHa9euVa9evbR69Wo98sgjWr58uby9vTV+/HhJ0rvvvqvbbrtNO3bsUHh4+J8+X58+fXT77bdLkgYPHqxz584pMTFRK1as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RvXq1Y3k5GRzunz5chFVjxv5M/f2999/N7y8vIzffvvNvH8ZGRmGYfDz3pkU9r290ToUr7/yM3nGjBlGgwYNjMzMTHMZ/27tkQg4uW+//dbw9/c3fv/9d8MwDGPPnj1G69atb7jPyJEjjQcffNCcf+edd4xXX33VMAzD6N69u/H000+b655//nlj9uzZRVA58lPY9/P555834uPjzXUDBgwwhg0bVgSVIz+FfT+v+uSTT4z69esT2hazorife/bsMby8vP7WDQ1HKez72blzZ2PFihXmusGDBxsRERFFUDn+6M/cy/T0dKNatWrG66+/nie0LcjPYZR8f+b75qoffvjBCAwMNMqXL28Ge7ShnUdh39uFCxcaffr0KapycQv+zL3dvHmzER4enu86ft47j8K+tzdah+L1Z38mnzx50vD19TXWr19vt5x/t/YYHsHJ7d27V+Hh4eZj0mFhYYqLi7vpPvfee685f9ddd2nXrl03XYeiV9j3c9q0aapRo4a57tChQ6pdu3YRVI78FPb9lKTz589rzJgxmjNnTtEUjesq7PtpGIaGDBmiVq1aadu2bdq7d2/RFY88Cvt+3n777ZozZ45SUlIUGxurFStW6P777y+6C4Dpz9xLd3d3bd26VW3bts33eLSFSr8/830jSTabTU8//bTee+89lStXzu54fN84h8K+tzt27NCOHTvk5+enwMBAjRs37paGW0Dh+TP3dseOHTpx4oRuu+02+fn5adiwYbLZbObx+HfrHAr73t5oHYrXn/2Z/Pzzz6t69epKSkrS1q1b7Y7Hv9v/Q2jr5NLS0hQaGmrOWywWubq6Kjk5ucD7+Pj46NSpUzddh6JX2PfzWhs3blRMTIz69+9fuEXjuorifo4aNUq9e/dWq1atiqZoXFdh38/Fixdrx44dCgwM1KFDh9SpUye99dZbRXcBsFPY93Ps2LHatm2b/P391bBhQ/Xs2VP33HNP0V0ATH/mXnp4eKhKlSoFOh5todLpz3zfSNLEiRNVp04d9e7d+4bH4/vGcQr73v7yyy/q2rWroqOj9dlnn+nDDz/U4sWLi6R23NifubeHDh1SmzZttHnzZn3//fdau3atpk2blu/x+HfrOIV9b2+0DsXrz9zb/9fevQdFVf5/AH8v4C7LRQREVBCQLiAhOmkJ3RhtuimGmZQZJYkXFNKarMwK+5pj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",
      "text/plain": [
       "<Figure size 1400x1000 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "============================================================\n",
      "模型性能详细对比\n",
      "============================================================\n",
      "      模型      准确率\n",
      "   支持向量机 0.552529\n",
      "   朴素贝叶斯 0.529183\n",
      "     K近邻 0.509728\n",
      "    神经网络 0.490272\n",
      " XGBoost 0.478599\n",
      "    逻辑回归 0.474708\n",
      "    梯度提升 0.466926\n",
      "AdaBoost 0.463035\n",
      "\n",
      "最佳模型: 支持向量机\n",
      "分类报告:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "          下跌       0.57      0.20      0.29       121\n",
      "          上涨       0.55      0.87      0.67       136\n",
      "\n",
      "    accuracy                           0.55       257\n",
      "   macro avg       0.56      0.53      0.48       257\n",
      "weighted avg       0.56      0.55      0.49       257\n",
      "\n",
      "\n",
      "前20个预测结果:\n",
      "            实际涨跌  支持向量机_预测\n",
      "2019-01-07     1         1\n",
      "2019-01-08     1         1\n",
      "2019-01-09     0         1\n",
      "2019-01-10     1         1\n",
      "2019-01-11     1         1\n",
      "2019-01-14     1         1\n",
      "2019-01-15     0         1\n",
      "2019-01-16     0         0\n",
      "2019-01-17     0         1\n",
      "2019-01-18     1         1\n",
      "2019-01-21     1         0\n",
      "2019-01-22     0         0\n",
      "2019-01-23     1         1\n",
      "2019-01-24     0         0\n",
      "2019-01-25     1         1\n",
      "2019-01-28     0         0\n",
      "2019-01-29     0         1\n",
      "2019-01-30     0         0\n",
      "2019-01-31     0         1\n",
      "2019-02-01     1         1\n",
      "\n",
      "胜率分析:\n",
      "实际上涨天数: 136/257 (52.92%)\n",
      "预测上涨天数: 215/257 (83.66%)\n",
      "正确预测上涨: 118/136 (86.76%)\n"
     ]
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.ensemble import GradientBoostingClassifier, AdaBoostClassifier\n",
    "from xgboost import XGBClassifier\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "\n",
    "# 设置中文字体\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 1. 获取和准备数据\n",
    "def get_stock_data(code, start_date, end_date):\n",
    "    \"\"\"获取股票数据\"\"\"\n",
    "    try:\n",
    "        if code.startswith('6'):\n",
    "            ak_code = f\"sh{code}\"\n",
    "        else:\n",
    "            ak_code = f\"sz{code}\"\n",
    "        \n",
    "        df = ak.stock_zh_a_hist(symbol=ak_code, period=\"daily\", \n",
    "                               start_date=start_date, end_date=end_date, \n",
    "                               adjust=\"qfq\")\n",
    "        \n",
    "        # 重命名列\n",
    "        df = df.rename(columns={\n",
    "            '日期': 'date', '开盘': 'open', '收盘': 'close', \n",
    "            '最高': 'high', '最低': 'low', '成交量': 'volume'\n",
    "        })\n",
    "        \n",
    "        df = df.set_index('date')\n",
    "        return df\n",
    "        \n",
    "    except Exception as e:\n",
    "        print(f\"获取数据失败: {e}，使用模拟数据\")\n",
    "        return create_sample_data()\n",
    "\n",
    "def create_sample_data():\n",
    "    \"\"\"创建模拟股票数据\"\"\"\n",
    "    dates = pd.date_range('2015-01-01', '2019-12-31', freq='D')\n",
    "    dates = dates[dates.dayofweek < 5]\n",
    "    \n",
    "    np.random.seed(42)\n",
    "    n_days = len(dates)\n",
    "    returns = np.random.randn(n_days) * 0.02\n",
    "    price = 30 * np.exp(np.cumsum(returns))\n",
    "    \n",
    "    df = pd.DataFrame({\n",
    "        'open': price * (1 + np.random.randn(n_days) * 0.005),\n",
    "        'close': price,\n",
    "        'high': price * (1 + np.abs(np.random.randn(n_days)) * 0.01),\n",
    "        'low': price * (1 - np.abs(np.random.randn(n_days)) * 0.01),\n",
    "        'volume': np.random.randint(500000, 2000000, n_days)\n",
    "    }, index=dates)\n",
    "    \n",
    "    df['high'] = np.maximum(df['high'], np.maximum(df['open'], df['close']))\n",
    "    df['low'] = np.minimum(df['low'], np.minimum(df['open'], df['close']))\n",
    "    return df\n",
    "\n",
    "# 获取数据\n",
    "print(\"正在获取股票数据...\")\n",
    "df = get_stock_data('000002', '20150101', '20191231')\n",
    "\n",
    "# 2. 特征工程\n",
    "print(\"正在构造特征...\")\n",
    "# 基本特征\n",
    "df['close-open'] = (df['close'] - df['open']) / df['open']\n",
    "df['high-low'] = (df['high'] - df['low']) / df['low']\n",
    "df['pre_close'] = df['close'].shift(1)\n",
    "df['price_change'] = df['close'] - df['pre_close']\n",
    "df['p_change'] = (df['close'] - df['pre_close']) / df['pre_close'] * 100\n",
    "\n",
    "# 移动平均线\n",
    "df['MA5'] = df['close'].rolling(5).mean()\n",
    "df['MA10'] = df['close'].rolling(10).mean()\n",
    "df['MA20'] = df['close'].rolling(20).mean()\n",
    "\n",
    "# 技术指标函数\n",
    "def calculate_rsi(close_prices, period=14):\n",
    "    delta = close_prices.diff()\n",
    "    gain = (delta.where(delta > 0, 0)).rolling(window=period).mean()\n",
    "    loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean()\n",
    "    rs = gain / loss\n",
    "    return 100 - (100 / (1 + rs))\n",
    "\n",
    "def calculate_ema(close_prices, period):\n",
    "    return close_prices.ewm(span=period, adjust=False).mean()\n",
    "\n",
    "# 计算技术指标\n",
    "df['RSI'] = calculate_rsi(df['close'], 12)\n",
    "df['MOM'] = df['close'] - df['close'].shift(5)\n",
    "df['EMA12'] = calculate_ema(df['close'], 12)\n",
    "df['EMA26'] = calculate_ema(df['close'], 26)\n",
    "\n",
    "# 成交量特征\n",
    "df['volume_ma5'] = df['volume'].rolling(5).mean()\n",
    "df['volume_ratio'] = df['volume'] / df['volume_ma5']\n",
    "\n",
    "# 价格位置特征\n",
    "df['price_position'] = (df['close'] - df['low']) / (df['high'] - df['low']) * 100\n",
    "\n",
    "# 3. 创建目标变量（预测明日涨跌）\n",
    "df['target'] = (df['close'].shift(-1) > df['close']).astype(int)\n",
    "\n",
    "# 删除空值\n",
    "df.dropna(inplace=True)\n",
    "\n",
    "print(f\"最终数据形状: {df.shape}\")\n",
    "\n",
    "# 4. 准备特征和目标变量\n",
    "feature_columns = ['close-open', 'high-low', 'p_change', 'MA5', 'MA10', 'MA20', \n",
    "                  'RSI', 'MOM', 'EMA12', 'EMA26', 'volume_ratio', 'price_position']\n",
    "\n",
    "X = df[feature_columns]\n",
    "y = df['target']\n",
    "\n",
    "# 数据标准化\n",
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(X)\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, \n",
    "                                                    random_state=42, shuffle=False)\n",
    "\n",
    "print(f\"训练集大小: {X_train.shape}, 测试集大小: {X_test.shape}\")\n",
    "\n",
    "# 5. 定义多种模型\n",
    "models = {\n",
    "    '逻辑回归': LogisticRegression(random_state=42, max_iter=1000),\n",
    "    '支持向量机': SVC(kernel='rbf', random_state=42, probability=True),\n",
    "    'K近邻': KNeighborsClassifier(n_neighbors=5),\n",
    "    '朴素贝叶斯': GaussianNB(),\n",
    "    '梯度提升': GradientBoostingClassifier(n_estimators=100, random_state=42),\n",
    "    'AdaBoost': AdaBoostClassifier(n_estimators=100, random_state=42),\n",
    "    'XGBoost': XGBClassifier(random_state=42, eval_metric='logloss'),\n",
    "    '神经网络': MLPClassifier(hidden_layer_sizes=(100, 50), max_iter=1000, random_state=42)\n",
    "}\n",
    "\n",
    "# 6. 训练和评估模型\n",
    "results = {}\n",
    "predictions = {}\n",
    "\n",
    "print(\"\\n开始训练模型...\")\n",
    "print(\"=\"*50)\n",
    "\n",
    "for name, model in models.items():\n",
    "    print(f\"训练 {name} 模型中...\")\n",
    "    model.fit(X_train, y_train)\n",
    "    y_pred = model.predict(X_test)\n",
    "    accuracy = accuracy_score(y_test, y_pred)\n",
    "    results[name] = accuracy\n",
    "    predictions[name] = y_pred\n",
    "    print(f\"{name} 准确率: {accuracy:.4f}\")\n",
    "\n",
    "# 7. 模型性能对比可视化\n",
    "plt.figure(figsize=(14, 10))\n",
    "\n",
    "# 准确率对比\n",
    "plt.subplot(2, 2, 1)\n",
    "model_names = list(results.keys())\n",
    "accuracies = list(results.values())\n",
    "\n",
    "bars = plt.bar(model_names, accuracies, color=plt.cm.Set3(np.linspace(0, 1, len(models))))\n",
    "plt.ylim(0.4, 0.7)\n",
    "plt.title('不同模型在股票涨跌预测上的准确率对比', fontsize=12, fontweight='bold')\n",
    "plt.ylabel('准确率', fontsize=10)\n",
    "plt.xticks(rotation=45)\n",
    "\n",
    "for bar, accuracy in zip(bars, accuracies):\n",
    "    height = bar.get_height()\n",
    "    plt.text(bar.get_x() + bar.get_width()/2., height + 0.01,\n",
    "             f'{accuracy:.3f}', ha='center', va='bottom', fontsize=9)\n",
    "\n",
    "# 混淆矩阵热力图（最佳模型）\n",
    "plt.subplot(2, 2, 2)\n",
    "best_model_name = max(results, key=results.get)\n",
    "best_y_pred = predictions[best_model_name]\n",
    "cm = confusion_matrix(y_test, best_y_pred)\n",
    "\n",
    "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', \n",
    "            xticklabels=['下跌', '上涨'], yticklabels=['下跌', '上涨'])\n",
    "plt.title(f'{best_model_name} 混淆矩阵\\n准确率: {results[best_model_name]:.4f}', \n",
    "          fontweight='bold', fontsize=12)\n",
    "plt.xlabel('预测标签')\n",
    "plt.ylabel('真实标签')\n",
    "\n",
    "# 特征重要性（对于树模型）\n",
    "plt.subplot(2, 2, 3)\n",
    "if hasattr(models['XGBoost'], 'feature_importances_'):\n",
    "    feature_importance = models['XGBoost'].feature_importances_\n",
    "    feature_importance_df = pd.DataFrame({\n",
    "        'feature': feature_columns,\n",
    "        'importance': feature_importance\n",
    "    }).sort_values('importance', ascending=True)\n",
    "    \n",
    "    plt.barh(feature_importance_df['feature'], feature_importance_df['importance'])\n",
    "    plt.title('XGBoost 特征重要性', fontweight='bold', fontsize=12)\n",
    "    plt.xlabel('重要性')\n",
    "\n",
    "# 预测概率分布\n",
    "plt.subplot(2, 2, 4)\n",
    "if hasattr(models['逻辑回归'], 'predict_proba'):\n",
    "    y_proba = models['逻辑回归'].predict_proba(X_test)[:, 1]\n",
    "    plt.hist(y_proba, bins=30, alpha=0.7, color='skyblue')\n",
    "    plt.title('逻辑回归预测概率分布', fontweight='bold', fontsize=12)\n",
    "    plt.xlabel('预测概率')\n",
    "    plt.ylabel('频数')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "# 8. 详细结果分析\n",
    "print(\"\\n\" + \"=\"*60)\n",
    "print(\"模型性能详细对比\")\n",
    "print(\"=\"*60)\n",
    "\n",
    "# 创建对比表格\n",
    "comparison_df = pd.DataFrame({\n",
    "    '模型': list(results.keys()),\n",
    "    '准确率': list(results.values())\n",
    "}).sort_values('准确率', ascending=False)\n",
    "\n",
    "print(comparison_df.to_string(index=False))\n",
    "\n",
    "# 最佳模型详细报告\n",
    "print(f\"\\n最佳模型: {best_model_name}\")\n",
    "print(\"分类报告:\")\n",
    "print(classification_report(y_test, best_y_pred, target_names=['下跌', '上涨']))\n",
    "\n",
    "# 9. 预测结果展示\n",
    "results_df = pd.DataFrame({\n",
    "    '实际涨跌': y_test.values,\n",
    "    f'{best_model_name}_预测': best_y_pred\n",
    "}, index=y_test.index)\n",
    "\n",
    "print(\"\\n前20个预测结果:\")\n",
    "print(results_df.head(20))\n",
    "\n",
    "# 10. 计算胜率\n",
    "actual_up = (y_test == 1).sum()\n",
    "predicted_up = (best_y_pred == 1).sum()\n",
    "correct_up = ((y_test == 1) & (best_y_pred == 1)).sum()\n",
    "\n",
    "print(f\"\\n胜率分析:\")\n",
    "print(f\"实际上涨天数: {actual_up}/{len(y_test)} ({actual_up/len(y_test):.2%})\")\n",
    "print(f\"预测上涨天数: {predicted_up}/{len(y_test)} ({predicted_up/len(y_test):.2%})\")\n",
    "print(f\"正确预测上涨: {correct_up}/{actual_up} ({correct_up/actual_up:.2%})\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "664a375b-f375-440e-9503-2454d8ee2513",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
